【问题标题】:Simple XML HttpRequest question简单的 XML HttpRequest 问题
【发布时间】:2011-06-21 22:54:41
【问题描述】:

我正在尝试使用 API 从外部网站发起对某些数据的请求。

如果我将请求复制粘贴到我的网络浏览器中,它可以正常工作。 例如 (http://example.com/json/user/search/all) 我可以在浏览器窗口中看到结果。

但是,我正在尝试从网站启动此查询,但遇到了一个问题: 使用一些像这样的javascript: var req = new XMLHttpRequest(); req.open('GET', 上述url, true) req.send()

我收到一条错误消息:Access Control Allow Origin 不允许 Origin (MyDOMAIN)。

同样,我对 XMLHttpRequests 还很陌生,我认为这很容易解决。 有人知道吗? (我尝试搜索谷歌,但找不到一个好的答案) 提前致谢。

【问题讨论】:

标签: javascript html xml xmlhttprequest getresponse


【解决方案1】:

这是您的浏览器对跨端脚本的保护。您不能访问来自不同域的其他页面。

编辑:还要检查:Cross-site XMLHttpRequest

【讨论】:

    【解决方案2】:

    问题是same-origin policy。这是一条规则,XMLHTTPRequests 可能被使用,除非在与原始页面相同的域中。这是出于安全原因。

    最简单的解决方法是编写一个代理请求的服务器端脚本。

    【讨论】:

      【解决方案3】:

      Cross-Site XMLHttpRequests 不允许你做,需要使用代理来完成。

      来自Yahoo 的This article 详细解释了它,并提供了更多关于如何解决它的想法。但基本上不应该这样做,因为这个限制是出于安全目的而存在的。

      如果您使用 PHP 和 fopen() 并使用您的 XMLHttpRequest 对象简单地调用该页面会更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多