我正在使用以下代码
const configureAjaxClient = () => {
let csrf_token = '';
const instance = axios.create({
baseURL: '/abc',
timeout: 300000,
paramsSerializer: (params) => {
return qs.stringify(params, { arrayFormat: 'brackets' });
},
});
instance.interceptors.request.use((config) => {
config.headers['X-CSRF-Token'] = csrf_token;
if (config.data) {
config.data = qs.stringify(config.data);
}
return config;
});
instance.interceptors.response.use((response) => {
if (response.data) {
return Promise.reject(response);
}
return response;
}, (error) => {
return Promise.reject(error);
});
return instance;
};
export default configureAjaxClient;
当我的请求是303时,将其重定向到位置标头以作为响应,并在下面调用错误函数
errorError:Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:87)
错误的是我得到error.response为未定义。
我将如何获取响应头,并希望重定向到另一条路由。
请帮助 我正在使用最新的Axios和reactjs
答案 0 :(得分:1)
不能。 Axios是XMLHttpRequest的包装,它透明地处理重定向响应,并且没有更改它的选项。
如果要切换到访存,则可以使用a request object来指定不自动遵循重定向。
答案 1 :(得分:0)
我的服务器正在检查其Ajax请求是否为请求中缺少此标头
// Headers
// This header is required to inform server that its an Ajax request
instance.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
答案 2 :(得分:0)
截至目前,您可以:
const response = axios('your303endpoint')
.catch(data => data.response.headers)
.then(headers => console.log(headers))