我试图创建2个axios客户端,但它们似乎正在共享标头。我的代码如下:
var client1 = axios.create();
var client2 = axios.create();
client2.defaults.headers.common['Authorization'] = 123;
console.log(client1.defaults.headers.common);
console.log(client2.defaults.headers.common);
两者都将Authorization
标头设置为123
。
https://jsfiddle.net/yebqu22d/
我做错了什么或这是预期的行为?
答案 0 :(得分:0)
这应该是预料之中的。确切地说defaults
意味着什么。
更新
在我看来,client1.defaults
,client2.defaults
甚至axios.defaults
都指向相同的参考。无论你改变了哪一个,它都会与他人分享价值。
但是可以通过create
为每个实例指定配置。检查以下内容:
var client1 = axios.create({
headers: {
common: {
Authorization: 123
}
}
});
var client2 = axios.create();
//client2.defaults.headers.common['Authorization'] = 123;
console.log(client1.defaults.headers.common);
console.log(client2.defaults.headers.common);
答案 1 :(得分:0)
看起来这是axios的错误:https://github.com/mzabriskie/axios/issues/385