如何在1次通话中删除axios.defaults.headers.common.Authorization?
我正在为我的域名的所有调用设置默认值,但是我在另一个域上进行了1次调用,如果传递了令牌,则调用会给我一个错误,当没有默认的Auth令牌保存时,一切正常
所以我要做的就是不通过特定电话中的Auth
我尝试了这个,但它不起作用
bool a = 2;
我也尝试过auth:{...},但这也不起作用。 解决方案是什么? 感谢
答案 0 :(得分:9)
可以试试delete axios.defaults.headers.common["Authorization"]; // or which ever header you have to remove
适合我。
如果您遇到问题,请告诉我,我可以帮忙找出其他解决方案。
答案 1 :(得分:8)
如果您已经为所有请求设置了默认的“授权” 您可以为该特定请求创建实例
var instance = axios.create();
delete instance.defaults.headers.common['Authorization'];
instance.get("http://api.com");
答案 2 :(得分:6)
要发送请求而没有:
axios
默认值axios
实例与此类似地更改您的请求:
axios.get('http://example.com', {transformRequest: (data, headers) => {
delete headers.common['Authorization'];
}
});
我要寻找的答案已发布在Apurva jain答案的评论中,但尚未单独回答,因此我将其单独发布以供参考:)
答案 3 :(得分:2)
delete axios.defaults.headers.common["Authorization"];
将解决问题。但请记住添加授权标题。
答案 4 :(得分:2)
delete request.defaults.headers.common.Authorization
那个 request
应该是一个 $axios.create()
的返回
答案 5 :(得分:1)
尝试使用Web服务身份验证令牌查询S3时遇到相同的问题。对此进行了修复。
axios.get("http://api.com", {
headers:{ Authorization:""}
});
您可以将默认标题更改为空字符串,这不会影响常见的默认标题。尽管不能完全确定是否所有Web服务都将忽略空字符串标头。
答案 6 :(得分:0)
一个简单的解决方案是从新的axios实例中删除所有通用标头:
const awsAxios = axios.create({
transformRequest: (data, headers) => {
// Remove all shared headers
delete headers.common;
// or just the auth header
delete headers.common.Authorization;
}
});