2010-11-17 337 views
2

請有人告訴我爲什麼下面的代碼在Internet Explorer中看起來可以正常工作,但在Chrome或Firefox中無法正常工作;我已經嘗試了所有可以使用.get,.ajax,.load的變體,但似乎都不想工作。 XML文件是W3C的一個例子,而我使用jQuery的latest.min.js:jQuery .get XML適用於IE瀏覽器,但不適用於Chrome瀏覽器,Firefox

$(document).ready(function() { 
$.get("http://www.w3schools.com/xml/simple.xml", function(data){ 
    $(data).find("food").each(function(){ 
    alert($(this).find("name").text()); 
    }); 
}); 
}); 

謝謝你找過我的問題!

+0

http://en.wikipedia.org/wiki/Same_origin_policy – 2010-11-17 14:53:00

回答

2

這是關於Same Origin Policy:IE允許AJAX查詢在不同的主機的網站,但其他瀏覽器沒有。 要繞過這一點,您可以使用JSONP或在本地php文件上執行查詢,如果您的allow_url_fopen爲真,則該文件將使用file_get_contents讀取遠端站點。

+0

只有*一些*版本的IE。 – Guffa 2010-11-17 14:57:13

+0

我曾經有過這個問題,所以至少有一個IE ^^ – MatTheCat 2010-11-17 15:00:32

-2

你的第二個參數應該是你的數據,而不是你的回調函數(documentation)...

jQuery.get(url, [ data ], [ callback(data, textStatus, XMLHttpRequest) ], [ dataType ]) 
+0

他沒有發送任何數據。 – 2010-11-17 14:53:47

+1

由於大多數參數都是可選的,因此不需要數據參數。該方法將根據它們的類型確定參數。 – Guffa 2010-11-17 14:58:19

相關問題