2010-11-17 169 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

相关问题