如何使用Axios reactjs获取303请求的响应头

问题描述 投票:1回答:2

我正在使用下面的代码

    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为undefined。

我如何获得响应头,我希望重定向到另一个路由。

请帮助我使用最新的Axios和reactjs

javascript reactjs browser axios
2个回答
1
投票

你不能。 Axios是XMLHttpRequest的包装器,它透明地处理重定向响应,并且无法更改它。

如果要切换到fetch,那么可以使用a request object指定不会自动跟踪重定向。


0
投票

请求中缺少此标头,我的服务器正在检查其Ajax请求

// Headers
// This header is required to inform server that its an Ajax request
instance.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
© www.soinside.com 2019 - 2024. All rights reserved.