我有一个jQuery .ajax()调用,它在IE7和8中工作得很好,在FF或Chrome中不工作。我认为这是一个跨域的问题(因为它试图跨域调用),但我的同事说,如果这是跨域问题,那么它在任何浏览器中都不起作用。我说的对吗?跨域问题是否会出现在某些浏览器中,而不出现在其他浏览器中?对这个stuff...thanks来说有点新!
更新:下面是我的代码,使用的是测试xml (与我试图显示的属性不匹配,但我只是想了解ajax调用的问题所在):
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://www.w3schools.com/xml/note.xml", //test xml
dataType: "xml",
success: xmlParser,
asynch: true
});
});
function xmlParser(xml) {
$(xml).find("Offer:lt(3)").each(function () {
$("#offers").append('<img src="' + $(this).find("logophotoname").text() + '"/><h1>' + $(this).find("listTitle").text() + '</h1><p>' + $(this).find("keywords").text() + '</p>');
});
}
发布于 2011-02-08 22:46:03
你的同事是对的。它不应该在任何浏览器中工作。然而,在IE8中,微软引入了另一个类似于XmlHttpRequest -> XDomainRequest的对象,但我不认为您正在使用该对象,否则IE7将失败。(这里有更多信息)
jQuery的ajax函数可用于使用JSONP进行跨域调用.然后,它将在DOM树中注入一个脚本对象,而不是使用具有跨域限制的XmlHttpRequest对象。
(这篇文章只与你的解释有关,如果你发布一些代码,它会有帮助。)也许它在IE 7/8中工作还有其他原因)
发布于 2011-02-09 00:07:32
从理论上讲,您不能进行跨域调用,但是如果您真的愿意,有两个选项: 1.有一个基于服务器的代理脚本2. JSONP。
https://stackoverflow.com/questions/4939341
复制相似问题