【问题标题】:Docxtemplater CORS policy on webserver网络服务器上的 Docxtemplater CORS 策略
【发布时间】:2021-10-12 08:59:06
【问题描述】:

我正在尝试建立一个需要使用 Docxtemplater 的小网站。 (https://docxtemplater.com/)

这是一个用于编辑word文档(.docx)的节点模块。在文档 (https://docxtemplater.com/docs/generate/) 中,声明 “请注意,如果您想从文件系统加载 docx,您将需要一个网络服务器,否则您将被 CORS 政策阻止。”

我已尝试将我的网站上传到主机 (https://www.000webhost.com/),但出现错误:

ma​​thiastester.000webhostapp.com/:1 从源“https://mathiastester.000webhostapp.com”访问“https://docxtemplater.com/tag-example.docx”处的 XMLHttpRequest 已被阻止CORS 政策:请求的资源上不存在“Access-Control-Allow-Origin”标头。

有没有人知道发生了什么...?

这里是网站:https://mathiastester.000webhostapp.com/

【问题讨论】:

  • 只是为了回复你,我是 docxtemplater 的创建者。我刚刚解决了这个问题,即您从文档中复制的代码现在应该可以工作了,即使在使用我的服务器时也是如此。这本来是打算的,但我想我几周前在没有注意到的情况下打破了它。
  • 太酷了!我不知何故也让它在 15 日工作,我知道如何。感谢您的意见!

标签: javascript docxtemplater


【解决方案1】:

就像您提供的链接中的示例一样,您的 AJAX 代码需要向在您的网络服务器上运行的一些服务器端代码发出请求,然后将请求发送到 docxtemplater,因为 docxtemplater 不允许跨域 ( "CORS") 向它发出请求。

简单地说,CORS 请求是一个 AJAX 请求,其中请求被发送到与运行它的源不同的“源”(域、端口和协议的组合)。出于安全原因,默认情况下浏览器不允许这些,但如果远程服务器愿意,它可以返回响应标头,向浏览器指示实际上可以允许请求。 docxtemplater 没有这样做,您引用的文档告诉您不要向他们的服务器发出 CORS 请求。但是,从您向我们展示的错误消息来看,您已经在代码中完全做到了这一点。

有关什么是 CORS 的更多信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

【讨论】:

  • 感谢您的帮助!我会试着读一些关于它的!但是 tbh 不知道这大部分是什么意思,我只想通过 js 编辑我的 word docx .....
  • 好吧,您可能“只是”想这样做,但您根本不能直接从 JS 调用 docxtemplater - 他们不允许这样做(可能是出于安全原因)。所以正如我的回答所解释的,你必须这样做的方式是让你的 JS 调用你的服务器,然后让你的服务器调用 docxtemplater。
  • 我很抱歉我的困惑,但我将如何调用我的服务器,并返回所需的信息?我对所有这些对服务器的调用都不是很熟悉。提前致谢。
  • 您只需向您的服务器发出 HTTP AJAX 请求,而不是直接向 docxtemplater。然后您的服务器上有代码向 docxtemplater 发出 HTTP 请求,获取结果并将其输出回您的 JS(作为对 AJAX 调用的响应)
  • 好的,谢谢!我会努力解决这个问题。
猜你喜欢
  • 2021-09-19
  • 2019-10-30
  • 2020-10-27
  • 1970-01-01
  • 2017-07-06
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
相关资源
最近更新 更多