【发布时间】:2018-06-29 22:24:42
【问题描述】:
我已经开始编写一个用 JavaScript 显示数据的 HTML 文件。由于它应该尽可能简单地完成,我不想运行 nodejs 或任何其他本地 http 服务器。我刚刚在浏览器中打开了 HTML 文件(url 是 file:///home/visu/index.htm)。
一切都很好,直到在 index.htm 中完成对在线 API 的 jquery ajax 请求。浏览器通过以下消息阻止请求:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://x.x.x.x. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)."
如何在不启动本地 http 服务器的情况下解决此问题?
一种可能的解决方案是使用一些“无安全标志”启动浏览器或使用插件禁用 CORS,但我必须一直手动执行此操作,所以我不喜欢它。
【问题讨论】:
-
无论你是否启动一个HTTP服务器,你都无法摆脱这个问题。您正在访问的 API 并不打算在浏览器中使用,因此禁用浏览器的安全功能是使其在浏览器中工作的唯一方法。根据您的用例,您应该考虑只在没有浏览器的情况下运行脚本(使用 node.js,但无需启动服务器)。
标签: javascript jquery ajax cors