我一直在閱讀這個主題,但我仍然對結果感到困惑。JQuery .get xml crossdomain調用不一致
據我所知JQuery的阿賈克斯不用彷徨不應該使用的數據類型=「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); } );
所以到我的問題:
- 我爲什麼要能夠進行跨域調用一個飼料而不是其他;不應該被禁止?
- 如果第二個Feed確實包含錯誤,爲什麼它會在本地工作?
- arghhhhhhhhhhhhhhh
歡呼聲
您是否檢查過網絡控制檯,看看在HTTP響應中是否設置了[Control-Access-Allow-Origin]標頭(https://developer.mozilla.org/en/http_access_control)? – apsillers