Kis*_*hra 5 javascript reactjs axios
我有一个在我的应用程序中使用的全局 axios 实例。我想在本地更新特定请求的标头。但标头更新正在更新全局默认值。我想了解做到这一点的最佳方法。目前我正在尝试重置标题。还尝试了深度克隆全局 axios 实例的想法。它只是感觉像是一个重要的功能,但找不到任何文档,除了讨论子实例的 github 问题。(https://github.com/axios/axios/issues/1170)
编辑:抱歉没有提供代码。这是我的设置来提供一个想法:以下是我的全局 axiosClient(在文件中apiClient.js),添加了一些拦截器(代码中未显示)。
const axiosClient = axios.create({
baseURL,
headers: {
Authorization: <bearer_token>,
'Content-Type': 'application/json',
.
}
});
Run Code Online (Sandbox Code Playgroud)
在我的模块中,我导入相同的客户端来发出 api 请求,如下所示:
import axiosClient from '../apiClient';
export function someRequest({ file }) {
let formData = new FormData();
formData.append('file', file);
const initHeader = axiosClient.defaults.headers['Content-Type'];
axiosClient.defaults.headers['Content-Type'] = 'multipart/form-data'; // I want to make this change only for the local instance
const request = axiosClient.post('parse-rebalance-data', formData);
axiosClient.defaults.headers['Content-Type'] = initHeader; //I have to reset the changes I made to the axiosClient
return request;
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题又是,(1)我是否需要以这种黑客的方式做到这一点,或者(2)我应该研究深度克隆本地副本,或者(3)是否有一个我缺少的记录方法来做到这一点。
Axios 实例所做的就是设置配置的默认值。但是,您可以使用config参数将任何其他配置传递给每个调用,就像使用全局 Axios 一样:
import axiosClient from '../apiClient';
export function someRequest({ file }) {
let formData = new FormData();
formData.append('file', file);
return axiosClient.post('parse-rebalance-data', formData, {headers: {'Content-Type': 'multipart/form-data'}});
}
Run Code Online (Sandbox Code Playgroud)
参数中指定的标头config将与默认值中的标头合并。
| 归档时间: |
|
| 查看次数: |
4316 次 |
| 最近记录: |