是否有一个选项axios可以防止它在响应代码不是 200 时抛出错误?
目前,当用户正确登录时,响应代码为200。如果用户登录失败,响应代码为500。
如果 axios 在状态代码 500 上抛出错误,我的代码将变得更加冗长:
这:
var result = await axios.post(url, data, headers);
var data = result.data;
Run Code Online (Sandbox Code Playgroud)
变成:
try {
var result = await axios.post(url, accessOptions, headers);
var data = result.data;
}
catch(error) {
data = error.response.data;
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我想告诉axios,“你不用担心抛出错误,让我担心空白。” 让我使用 try catch 来处理语法错误或其他错误,而不是登录失败响应代码 500。
您可以使用validateStatus配置选项:
var result = await axios.post(url, data, {
headers,
// Don't throw when the status code is 500
validateStatus: status => (status >= 200 && status < 300) || status === 500
});
var data = result.data;
Run Code Online (Sandbox Code Playgroud)
var result = await axios.post(url, data, {
headers,
// Never throw
validateStatus: () => true
});
var data = result.data;
Run Code Online (Sandbox Code Playgroud)