axios处理302
时间: 2024-07-08 09:01:35 浏览: 272
axios是一个流行的JavaScript库,用于浏览器和Node.js中的HTTP请求。当服务器响应状态码为302(临时重定向)时,通常意味着客户端应该跟随URL更改去获取新的内容。在axios中处理这种情况时,你需要设置适当的选项来自动跟踪这些重定向。
1. **配置axios**:
在创建axios实例或配置axios默认设置时,你可以开启`withCredentials`属性,这样它会自动发送cookies(对于跨域请求),并设置`autoRedirect`为true,使其默认处理302重定向。
```javascript
import axios from 'axios';
// 创建axios实例并启用重定向
const instance = axios.create({
withCredentials: true,
autoRedirect: true,
});
```
2. **拦截器管理**:
如果你想在全局范围内控制302处理,可以使用axios的拦截器。在interceptors里添加一个response拦截器,并检查状态码:
```javascript
instance.interceptors.response.use(
(response) => {
if (response.status === 302) {
// 遵循重定向
return response.config.url;
}
return response;
},
(error) => {
// 处理错误
return Promise.reject(error);
},
);
```
3. **处理单次请求**:
对于特定的请求,也可以选择在发出请求后手动处理重定向,例如:
```javascript
axios.get('original-url', {
// 其他请求头和参数
})
.then((response) => {
if (response.status === 302) {
return axios.get(response.headers.location); // 跟随新URL
}
return response.data;
})
.catch((error) => {
console.error(error);
});
```
阅读全文
相关推荐

















