CORS 的问题:浏览器和 CURL 工作,但 XMLHttpRequest 不 [重复]
Posted
技术标签:
【中文标题】CORS 的问题:浏览器和 CURL 工作,但 XMLHttpRequest 不 [重复]【英文标题】:Problem with CORS : Browser and CURL work but XMLHttpRequest don't [duplicate] 【发布时间】:2020-04-29 01:21:40 【问题描述】:网络服务器在我的本地网络上运行。让我们说: http://192.168.1.12
当我用浏览器访问这个网址时,它工作正常。
当我使用 curl (zsh) 访问此 url 时,它也可以正常工作:
curl -s "http://192.168.1.12/"
但是当我尝试使用带有 XMLHttpRequest 的 javascript 时:
var x = new XMLHttpRequest();
x.open("GET", "http://192.168.1.12/", true);
x.send(null);
失败(错误信息已翻译): 缺少 CORS 标头“Access-Control-Allow-Origin”。
我无法修改服务器行为,但我认为我不需要,因为它与 curl 一起使用。 我应该在我的 javascript 代码中添加什么以使其正常工作?
【问题讨论】:
【参考方案1】:如果你不能修改你的服务器行为,那你就完蛋了。现代网络浏览器对跨源实施安全检查。如果没有正确的 CORS(Access-Control-Allow-Origin 标头必须存在于服务器 http 响应中),则无法从另一个域调用服务器。这是一个后端错误。 此外,如果您真的需要继续使用它,您可以在浏览器上安装扩展程序来停用 CORS 安全性,但我不推荐它。
【讨论】:
以上是关于CORS 的问题:浏览器和 CURL 工作,但 XMLHttpRequest 不 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
CORS 上传文件到 S3,得到 SignatureDoesNotMatch 错误
使用 CORS 到 API 网关的 AJAX POST 不起作用,但可以使用 CURL 进行 POST