在Chrome的JavaScript控制台中,如果我运行以下命令:
var that = new XMLHttpRequest();
that.open('GET', 'http://this_is_a_bad_url.com', false);
that.send();我收到了一个意料之外的错误:
NetworkError: A network error occurred.我想抓住这个,所以我用:
var that = new XMLHttpRequest();
that.open('GET', 'http://this_is_a_bad_url.com', false);
try {
that.send();
} catch(exception) {
if(exception instanceof NetworkError) {
console.log('There was a network error.');
}
}但是,我收到一个关于NetworkError未被定义的错误:
ReferenceError: NetworkError is not defined我怎样才能抓住NetworkError?
发布于 2013-11-27 01:08:55
我想你的意思是:
if(exception.name == 'NetworkError'){
console.log('There was a network error.');
}我不认为这个错误是NetworkError的一个实例,而是以这种方式抛出的:
throw {
name: 'NetworkError',
message: 'A network error occurred.'
// etc...
}发布于 2019-01-23 14:22:52
我在寻找一种方法来检查我在使用Axios时得到的Network Error时找到了这个答案,所以如果您没有使用Axios,这个答案可能不适合您。
通过Axios接收的error对象具有config、request和response属性,request和response都具有status属性。response对象的属性显示在下面的图像中:

我的axios配置如下所示:
this.client = axios.create(options);
this.client.interceptors.response.use(this.handleSuccessResponse, this.handleErrorResponse);
this.unauthorizedCallback = () => {};handleErrorResponse方法是:
handleErrorResponse(error) {
// use the information from the error object here
}编辑:正如@Erdős-Bacon建议的那样
如果您使用的是axios和nginx,这可能是您的注释。我不同意error.response是undefined,原来是因为CORS的问题。必须将我的nginx配置设置为关键字,总是添加适当的标题来解决CORS,否则标题就会在错误响应上被剥离,因此CORS问题就会出现。有关更多信息,请参见这个答案。
发布于 2013-11-27 01:10:28
查看单位差事件。您可以获得响应的状态。
https://stackoverflow.com/questions/20231075
复制相似问题