0

这是一个基本的 jQuery $ajax 函数,我特意在其中调用了一个假端点;

const URL_RESTEndpoint = "http://localhost/api/MyEndpointIntentionalNotExist"
$.ajax(
{
    url: URL_RESTEndpoint,
    method: "PATCH",
    //etc...     
})
.done( (data, textStatus, jqXHR) => {
    //do stuff with data...
})
.fail( (jqXHR, textStatus, errorThrown) => {
    //do stuff with error params...
})
.always ( function (data_xhr, textStatus) {
    console.log(textStatus);
}

当上面的代码运行时,在(Chrome 的)浏览器控制台上它会打印出一个很长的错误字符串:

"Access to XMLHttpRequest at 'http://localhost/api/MyEndpointIntentionalNotExist' 
from origin 'http://localhost:3000' has been blocked by CORS policy: 
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' 
header is present on the requested resource."

好的。美好的。但我想以某种方式在我的 js 代码中捕获上述控制台错误字符串,这可能吗?

我检查了所有的 .$ajax 对象或参数;它可以做的最好的是将文字字符串“error”显示为错误。严重地 ?!

更新: 感谢评论员和链接,显然在 JS 中捕获 CORS 错误是一个安全漏洞。不需要答案,我投票结束了这个问题,但它可能会在未来帮助某人。

4

0 回答 0