【问题标题】:JQuery Crossdomain XML Request without Proxy没有代理的 JQuery 跨域 XML 请求
【发布时间】:2012-04-02 05:17:24
【问题描述】:

我正在寻找一种从 javascript 向 XML 服务发出请求的方法。

其实我用的是 JQuery,我正在尝试使用这个插件:http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/,但它不适用于 XML。

还有另一种使用 JSON 的方法,即 JSONP,但它不适用于 XML。

每次我尝试使用 XML 数据向其他站点发出请求时,都会得到如下信息:

Origin null is not allowed by Access-Control-Allow-Origin.

另外一件事,我需要在没有代理的情况下实现这个,只需在客户端解决它。

【问题讨论】:

  • 我将 postMessage 与 Iframe 一起用于此类内容。您不必对发送/接收的标头做任何特别的事情。 postMessage 与 IE8 和所有其他现代浏览器兼容。
  • YQL 不是一个可行的解决方案。需要在客户端解决
  • 如果服务器不支持 JSONP 或 CORS 并且您无权访问服务器,我相信没有代理就无法做到这一点。事实上,如果您查看该窗口右侧的侧边栏 Related 标题下,您会看到许多类似的问题。
  • 最好将此问题视为 Ways to circumvent the same-origin policy 的副本 - 这似乎是该主题中最典型的问题。

标签: javascript jquery xml cross-domain


【解决方案1】:

如果您可以访问服务器并且它恰好是 apache,那么您可以尝试将其添加到您的 VirtualHost

Header add Access-Control-Allow-Origin "http://yourdomain.com"

【讨论】:

  • 感谢您的回复。基本上,我无权访问应用程序所在的服务器,以及我们使用服务的服务器。需要在客户端解决。
  • @todotresde:如果您想要一个好的答案,您应该在问题中尽可能详细地告诉我们。您是否有权访问服务器是最重要的细节之一。
  • 是的,这就是我使用 iframe 与 postMessage 通信的原因。限制是IE8以下不支持。
【解决方案2】:

好吧,当数据是 XML 时,似乎不可能做到这一点:(。

谢谢大家!

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多