我正在尝试从带有API的外部网站发起一些数据请求。
如果我将请求复制粘贴到我的网络浏览器中,它可以正常工作。 示例如(http://example.com/json/user/search/all) 我可以在浏览器窗口中看到结果。
但是,我正在尝试从网站启动此查询,而我遇到了一个问题: 使用这样的一些JavaScript: var req = new XMLHttpRequest(); req.open('GET',aboveliedurl,true) req.send()
我收到一条错误消息:Access Control Allow Origin不允许使用Origin(MyDOMAIN)。
同样,我对XMLHttpRequests相当新,我认为解决起来相当简单。 谁知道? (我尝试搜索谷歌,但找不到一个好的答案) 提前谢谢。
答案 0 :(得分:2)
问题是same-origin policy。这是XMLHTTPRequests可以不使用的规则,除非在与原始页面相同的域中。这是出于安全原因。
最简单的方法是编写一个代理请求的服务器端脚本。
答案 1 :(得分:2)
您不能执行Cross-Site XMLHttpRequests并且需要使用代理来完成它。
来自雅虎的This article详细解释了它,并提供了有关如何解决它的更多想法。但基本上不应该这样做,因为出于安全目的存在这种限制。
如果您使用PHP和fopen()
并使用XMLHttpRequest对象简单地调用该页面,那会更好。
答案 2 :(得分:1)
这是您的浏览器防止跨站点脚本编写的保护。您不能访问来自其他域的其他页面。
编辑:同时检查:Cross-site XMLHttpRequest