Javascript 如何检查No';访问控制允许原点';标题错误

Javascript 如何检查No';访问控制允许原点';标题错误,javascript,xmlhttprequest,Javascript,Xmlhttprequest,在JavaScript中使用XMLHttpRequest时,是否可以区分以下两个错误(GET Complete failed/No“Access Control Allow Origin”头) 显然,XMLHttpRequest对象的readyState和状态没有区别。我尝试使用window.onerror捕获所有错误,但显然,这两个错误不会触发回调函数。您最好的做法是,从一开始就防止此错误发生。通过确保服务器将您试图从脚本访问的域添加到“访问控制允许来源”设置,您不必在客户端处理它 也就是说

在JavaScript中使用XMLHttpRequest时,是否可以区分以下两个错误(GET Complete failed/No“Access Control Allow Origin”头)


显然,XMLHttpRequest对象的readyState和状态没有区别。我尝试使用window.onerror捕获所有错误,但显然,这两个错误不会触发回调函数。

您最好的做法是,从一开始就防止此错误发生。通过确保服务器将您试图从脚本访问的域添加到“访问控制允许来源”设置,您不必在客户端处理它

也就是说,您应该能够将处理程序附加到XMLHttpRequest对象的错误事件。使用错误消息,您可能能够确定出错的原因;但这并不那么令人感兴趣。对客户来说,什么地方出了问题并不重要,只是它无法获取数据,因此您可以相应地进行规划

var oReq = new XMLHttpRequest();

oReq.addEventListener("error", transferFailed);

oReq.open();

function transferFailed(evt) {
  console.log("An error occurred while transferring the file.");
}

更多信息:

您可能必须使用服务器端来检查该标题。创建一个小的服务器端脚本,只需使用ajaxAccess Control Allow Origin调用它,即可在响应中添加一个头,指示客户端不允许在发起域内或之外调用(取决于配置方式)。从被阻止的域检索数据的调用甚至不会离开客户端。