jQuery.ajax({
async: false,
url: url,
dataType: dataType,
crossDomain: false
}).done(function(data) {
callback(null, data);
}).fail(function(jqXHR, textStatus, errorThrown) {
if (jqXHR.statusText === 'OK') {
console.log('Unable to load resource:', url, 'error:', errorThrown);
}
callback(errorThrown)
});
对于上面的ajax请求调用,我面临一些错误
错误1: 预检中的Access-Control-Allow-Header不允许使用请求标题字段X-Requested-With
错误2: DOMException:无法执行'发送' on' XMLHttpRequest':无法加载
答案 0 :(得分:0)
您尝试访问的服务器阻止浏览器通过其HTTP访问控制策略(CORS)完成请求。特别是“Access-Control-Allow-Headers”。
您需要:
答案 1 :(得分:0)
避免同步请求。它们已被弃用。请阅读MDN上的这篇文章。
您正面临所有网络浏览器实施的同源政策。由于 CORS 显然不适合您,您应该依赖JSONP。
如果您要加载脚本,最好使用jQuery.getScript()。
答案 2 :(得分:0)
当我们使用dataType ='script'对js文件进行ajax调用时,我找到了根本原因
当我们提到dataType ='script'时,它会破坏脚本数据并返回成功回调中的数据。 假设如果js文件在eval(js)期间出现任何错误,它将发现错误并且它将在成功回调中返回undefined。