【问题标题】:Crossdomain ajax with xml file IE带有 xml 文件 IE 的跨域 ajax
【发布时间】:2013-02-03 13:41:16
【问题描述】:

我已经构建了一个脚本来使用 jquery 的 ajax 函数来拉一个 xml 文件跨域。 xml 文件是 iTunes 的 RSS 提要。在创建 xml 文件的 php 中,我添加了这个:

header('Access-Control-Allow-Origin: *');

我已经调查过这个问题,它适用于除 IE 之外的所有浏览器。据说它可以在 10 中工作,但我只测试了 9。我在网上查了一下,发现也许我可以破解一个 XDomainRequest,但它不是很稳定并且有很多限制,让我觉得它不值得它。

如果 IE 9 及以下版本无法解决此问题,那么我将简单地进行功能检测并建议用户更新到 ie 10 或下载其他浏览器。

有谁知道在 IE 9 及以下版本中拉 xml 跨域的稳定方法?

【问题讨论】:

  • 我担心的是 iTunes 正在提取相同的提要。我想我可以在 php.ini 中添加一些东西来检查它是否是 jsonp 请求。它肯定适用于 IE 9 吗?
  • Imortenson,我试过 jquery.support.cors = true,但我从未见过 web.config 的东西。我在哪里可以找到这个 web.config 文件来添加标题?这是一个 linux 服务器。

标签: javascript xml ajax internet-explorer xmlhttprequest


【解决方案1】:

最近我自己经历过这个,我发现以下 jQuery 插件运行良好:

https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

API 与常规 jQuery ajax 无缝协作,我只在 IE8 或 IE9(通过 requirejs)中拉入脚本。

使用 XDomainRequest 需要记住的几件事

  • 无法设置自定义标头(因此,如果您要传递数据,则必须是查询字符串)
  • 不能跨越安全边界(即不能从 HTTPS 转到 HTTP)

除了上述两点之外,我没有遇到任何问题,并且代码已经在生产环境中运行了几周。

【讨论】:

  • 是的,它有效,它的行为有点奇怪,但我想我可以从这里弄清楚。它拉了它。
猜你喜欢
  • 2012-08-05
  • 2013-07-07
  • 2013-08-19
  • 2011-06-19
  • 1970-01-01
  • 2014-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
相关资源
最近更新 更多