Javascript XMlHttprequest 到另一个域
Posted
技术标签:
【中文标题】Javascript XMlHttprequest 到另一个域【英文标题】:Javascript XMlHttprequest to another domain 【发布时间】:2017-06-13 11:54:17 【问题描述】:我正在使用 javascript XMlHttprequest api 发出跨站点 http 请求,以在 post 方法中发送和检索数据。目的是使用第 3 方提供的此服务发送短信。但是我不能这样做,因为浏览器不允许这样做并收到以下错误响应“跨源请求被阻止:同源策略不允许读取http://trans.smsfresh.co/api/sendmsg.php 的远程资源。(原因:CORS 标头'访问-Control-Allow-Origin' 缺失)。”
是否可以使用 html 和 javascript 来实现?
【问题讨论】:
【参考方案1】:在您的 JavaScript/HTML 中无法从客户端绕过它。
同源限制由您的浏览器强制执行,但可以通过服务器响应中的Access-Control-*
CORS 标头放宽。
如果服务器没有为资源发送 Access-Control-Allow-Origin
响应标头,您将无法从 Web 应用程序中的 JavaScript 获取它。您对请求所做的任何更改都无法解决此问题(例如,您可能在客户端添加的其他请求标头不会有所帮助)。
详情见MDN HTTP access control (CORS)文章。
在此处查看Why does my JavaScript code receive a "No 'Access-Control-Allow-Origin' header is present on the requested resource" error, while Postman does not? 等。
【讨论】:
以上是关于Javascript XMlHttprequest 到另一个域的主要内容,如果未能解决你的问题,请参考以下文章
执行用包含脚本标签的 XMLHttpRequest 编写的 Javascript?
运行使用 XMLHttpRequest 下载的 JavaScript
JavaScript中的XMLHttpRequest与WebAPI
JavaScript(Navigator/Screen/Cookie/XMLHttpRequest/CORS)