【发布时间】:2012-06-01 18:17:09
【问题描述】:
我整个上午都在阅读这个主题,但我仍然对结果感到困惑。
据我了解,JQuery .ajax .get 不应该使用 datatype="xml" 跨浏览器工作,但是以下 rs 提要确实有效
var rssurl = 'http://gdata.youtube.com/feeds/base/videos/-/trees?orderby=published&alt=rss';
但是,当我尝试调用另一个提要时,它不起作用。它给出了一个解析错误。
var rssurl = 'http://api.flickr.com/services/feeds/photos_public.gne?tags=trees&format=rss2'
现在,当我在本地复制并调用它时,这个不工作的提要确实有效。这就是为什么我认为这是一个跨域问题。
另外,在 Fiddler 中查看时,我可以看到 Feed 已实际下载。我觉得奇怪的是,如果它是跨域调用,为什么会发生这种情况,肯定会在提取提要之前停止?
在拉取提要的代码下方。
$.ajax({
type: "GET",
url: rssurl,
dataType: "xml",
success: function(data, textStatus, jqXHR) {
document.write("got the feed: "+ textStatus+"
");
var $xml = $(data);
$xml.find("item").each(function() {
var $this = $(this),
document.write( $this.find("title").text() );
});
},
error: function(jqXHR, textStatus, errorThrown){
alert('failure');
console.log('status: ' + textStatus);
if (textStatus == 'error')
console.log(errorThrown);
}
);
所以关于我的问题:
- 为什么我可以跨域调用一个提要而不是另一个提要?不应该都被禁止吗?
- 如果第二个提要确实包含错误,为什么它会在本地工作?
- 啊啊啊啊啊啊啊啊啊
干杯
【问题讨论】:
-
您是否检查过您的网络控制台以查看是否在 HTTP 响应中设置了
Control-Access-Allow-Origin标头?
标签: javascript jquery xml ajax