我试图通过ajax jQuery的方法从跨域服务器检索XML,并且控制台上出现以下错误消息:
DOMException: Failed to execute 'send' on 'XMLHttpRequest': Failed to load: 'http://foreign.domain/...'
导致此错误的代码是:
var temp = $.ajax({ url : url, async : false dataType : "xml", success : function(xml) { // irrelevant for the case }, error : function(xhr, textStatus, error) { console.warn('An error occured while loading the following URL: "%s". Error message: %s', url, error); } });
问题是同步选项由以下方式指定:
async: false,
这似乎在Chrome中不起作用,可能是由于jQuery的ajax方法的规范,该规范说:
跨域请求和dataType:“ jsonp”请求不支持同步操作。
奇怪的是,Firefox和Internet Explorer似乎忽略了该规范,它们都执行http请求并返回XML结果。