使用以下代码执行(故意失败)跨域请求时:
var request = new XMLHttpRequest();
request.open("GET", 'http://code.jquery.com/jquery-2.1.1.min.js');
request.onerror = function(error) {
alert(error.target.status)
};
request.send()
我将在开发者控制台中收到以下预期的错误消息:
XMLHttpRequest cannot load http://code.jquery.com/jquery-2.1.1.min.js No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
但是来自XmlHttpRequest或浏览器的错误消息是什么?
我想从XmlHttpRequest获取该错误消息,但我看不到。
使用上面的代码,我希望(如https://stackoverflow.com/a/16931075/343475中所示)在警告框中看到错误消息,但我得到的只是0
。
答案 0 :(得分:1)
但是这是来自XmlHttpRequest还是来自浏览器的错误消息?
XMLHttpRequest是浏览器的一部分。所以“是”。
如果您的意思是“是来自服务器还是来自浏览器的错误”,那么它来自浏览器。服务器无法知道您是否发出了跨域请求。
使用上面的代码,我希望(如https://stackoverflow.com/a/16931075/343475中所示)在警告框中看到错误消息,但我得到的只是0。
状态代码将提供有关外源的资源的信息(它会告诉您资源是否存在以及浏览器的用户是否有权访问它),因此它被同源策略抑制。