Rom*_*799 4 javascript xmlhttprequest cors
我写了一个函数,不断返回Access-Control-Allow-Origin错误.这对我来说真的很好; 我不想解决这个问题.我只是想抓住它,所以我可以在我的程序中阅读它的消息.
导致错误抛出的所有代码都在我的try块中,我的catch块显示错误的字符串消息.但是,当我运行代码时,没有捕获错误,并且错误在控制台中显示为红色.如何捕获此错误并存储其消息?
try {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
if (this.status < 400 && this.status >= 300) {
console.log('this redirects to ' + this.getResponseHeader("Location"));
} else {
console.log('doesn\'t redirect');
}
}
xhr.open('HEAD', $scope.suggLink, true);
xhr.send();
} catch(e) {
console.log('Caught it!');
console.log(e.message);
}
Run Code Online (Sandbox Code Playgroud)
sid*_*ker 11
您唯一可以使用的是onerror
事件处理程序:
xhr.onerror = function() { console.log("Error occurred but I dunno what exactly.")}
Run Code Online (Sandbox Code Playgroud)
虽然浏览器本身会将更详细的错误消息记录到控制台,但您无法从代码中访问该消息.请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=118096#c5:
出于安全原因,XHR和Fetch API的错误细节不会暴露给JavaScript.
就这里实际需要的规格而言,XHR规范引用了Fetch规范,以便在出现错误时提供"状态消息"的详细信息.对于CORS阻止的任何网络错误或请求,Fetch规范要求状态消息为"空字节序列":
甲网络错误是其状态始终为0,一个响应状态消息总是空的字节序列,首标列表是总是空的,身体总是零,和拖车总是空的.
归档时间: |
|
查看次数: |
1834 次 |
最近记录: |