前端发起axios,无状态码显示
时间: 2024-10-24 13:07:53 浏览: 10
axios 处理 302 状态码的解决方法
当你在前端使用axios发起请求时,如果服务器没有返回状态码或者你没有设置axios的默认配置来获取状态码,通常情况下你会收到一个空的状态属性。这可能是由于服务器响应中未包含HTTP状态码头部,或者是请求配置中的`responseType`设置为`'text'`或`'json'`等,axios默认解析了响应体而忽略了状态码。
例如,这样的 Axios 请求代码:
```javascript
axios.get('https://api.example.com/data')
.then(response => {
console.log(response.data); // 只会打印数据,不会看到状态码
})
.catch(error => {
if (error.response) { // 如果有响应对象,可以尝试访问状态码
console.log(error.response.status);
} else {
console.log('Error', error.message);
}
});
```
如果你想要始终获取状态码,可以在 axios 的实例化时设置默认配置:
```javascript
const instance = axios.create({
baseURL: 'https://api.example.com',
responseType: 'json', // 设置默认响应类型为json,这样会包含status属性
});
instance.get('/data')
.then(response => {
console.log(response.data, response.status);
})
.catch(error => {
console.error(error.response.status || error.message);
});
```
阅读全文