假设我正在使用以下Ajax调用:
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://www.w3schools.com/xml/cd_catalog.xml", //test xml
dataType: "xml",
success: xmlParser,
error: alert("We can't find your XML!"),
asynch: true
});
});
function xmlParser(xml) {
$(xml).find("CD:lt(3)").each(function () {
$("#offers").append('<h1>' + $(this).find("ARTIST").text() + '</h1><p>' + $(this).find("YEAR").text() + '</p>');
});
这在IE 7和8中运行良好,但在FF或Chrome中不起作用。我得到一个空的XML文件,并在这些浏览器中出现以下错误:
XML解析错误:未找到任何元素 地点: MOZ-nullprincipal:{77f5fd10-d793-4d35-9a4b-b8280b704fba} 第1行,第1列:
当我搜索错误时,我认为这是由于Ajax跨域问题。但如果是这种情况,不会在所有浏览器中禁用它吗?任何帮助都表示赞赏 - 我对这整个Ajax事物都是新手。
谢谢!
答案 0 :(得分:1)
error: alert("We can't find your XML!"),
我想知道你是否收到错误,因为实际上有错误或因为你误解了lambda表达式。我引用的行始终会弹出错误消息。
asynch: true
你也拼错了async
。你真的需要对你输入的内容更加小心。
答案 1 :(得分:0)
您正在从客户端向外部域进行AJAX调用(除非您为www.w3schools.com编写代码。
这可能是SOP(同源政策)问题。您可以尝试使用JSONP(如果他们的服务器已设置),或者您可以将该调用移动到您的服务器(PHP,C#等等)并让您的服务器代表客户端进行调用。
我建议谷歌搜索“SOP”和“JSONP”。