【发布时间】:2012-12-22 20:43:11
【问题描述】:
我被要求从 xml 提要中获取一些“数据”并将其添加到我在服务器上托管的页面。我想我会使用 jQuery Ajax api——我得到了这个错误。
XMLHttpRequest cannot load .../3.atom. Origin http://myserver.com is not allowed by Access-Control-Allow-Origin.
我需要向某人请求访问权限吗?有什么我可以添加到我的请求中的吗?我已经阅读了有关 CORS 的内容,在这种情况下我应该使用该服务吗?
这是我目前的代码。
var feedUrl = "http://www.holmanreviews.com/audi-pembroke-pines/3.atom";
var content;
$.ajax({
type: "GET",
url: feedUrl,
dataType: "xml",
crossDomain: true,
success: function (xml) {
$(xml).find('entry').each(function () {
var $this = $(this);
var id = $this.attr('id');
content += id;
});
}
});
$('#feed').append(content);
我这里也有一个 JS Fiddle。 http://jsfiddle.net/rsturim/6nsyX/
如果你能提供帮助,我会很想知道这方面的背景——非常感谢。
【问题讨论】:
-
你需要使用 JSONP...
-
JSONP、CORS 或服务器端代理。
-
您是否在控制远程域?这严重限制了您的选择。
-
我无法控制远程域 :(
-
如果您希望使用 jQuery 发出请求并希望获得完整的 IE 支持,我不建议使用 CORS(cors 在 IE7 中无法工作,并且 jQuery 在 IE8 和 9 中不支持 CORS 请求)。服务器端代理将是一种更简单的方法。只需向您的服务器请求数据,然后让您的页面从您的服务器请求数据。
标签: jquery ajax xmlhttprequest cross-domain cors