Axios - 仅在 1 个调用中删除 headers 授权
Axios - Remove headers Authorization in 1 call only
如何只在 1 个调用中删除 axios.defaults.headers.common.Authorization?
我正在为对我的域的所有调用设置默认值,但我在另一个域上进行了 1 次调用,如果传递了令牌,调用会给我一个错误,当没有默认的 Auth 令牌保存所有内容时工作正常。
所以我想做的是不在该特定调用中传递 Auth
我试过了,但没用
loadApiCoins({ commit }) {
Vue.axios({
method: 'get',
url: 'https://api.coinmarketcap.com/v1/ticker/',
headers: {
'Authorization': '',
},
}).then(...)
},
我也尝试过 auth: {...} 但这也不起作用。
解决办法是什么?
谢谢
尝试以下方法
delete axios.defaults.headers.common["Authorization"];
// or which ever header you have to remove
delete axios.defaults.headers.common["Authorization"];
将解决问题。但是记得把授权header加回去。
我在尝试使用我的 web-service 身份验证令牌查询 S3 时遇到了同样的问题。用这个修复它。
axios.get("http://api.com", {
headers:{ Authorization:""}
});
您可以将默认的 headers 更改为空字符串,这不会影响常见的默认 headers。虽然不完全确定是否所有 Web 服务都会忽略空字符串 header.
如果您已经为所有请求设置了默认 'Authorization'
您可以为该特定请求创建一个实例
var instance = axios.create();
delete instance.defaults.headers.common['Authorization'];
instance.get("http://api.com");
不发送请求:
- 修改全局
axios
默认值
- 正在创建一个新的
axios
实例
将您的请求更改为与此类似:
axios.get('http://example.com', {transformRequest: (data, headers) => {
delete headers.common['Authorization'];
return data;
}
});
我要找的答案在Apurva jain的回答的评论里贴出来了,但是没有做单独的回答,所以单独贴出来方便参考:)
一个简单的解决方案是从新的 axios 实例中删除所有常见的 header:
const awsAxios = axios.create({
transformRequest: (data, headers) => {
// Remove all shared headers
delete headers.common;
// or just the auth header
delete headers.common.Authorization;
}
});
delete request.defaults.headers.common.Authorization
request
应该是 return 的 $axios.create()
删除axios.defaults.headers.common["语言"];
要扩展@phantomraa 的回答,您可能需要使用
this.$axios.$get(
url, {
// modify auth header for current request only
transformRequest: (data, headers) => {
// prevent the header from being added by default
delete headers.common['Authorization'];
// some libraries might set it directly as well, e.g. nuxtjs/auth
delete headers['Authorization'];
return data;
}
})
抱歉,需要更多代表才能发表评论。
如何只在 1 个调用中删除 axios.defaults.headers.common.Authorization?
我正在为对我的域的所有调用设置默认值,但我在另一个域上进行了 1 次调用,如果传递了令牌,调用会给我一个错误,当没有默认的 Auth 令牌保存所有内容时工作正常。
所以我想做的是不在该特定调用中传递 Auth
我试过了,但没用
loadApiCoins({ commit }) {
Vue.axios({
method: 'get',
url: 'https://api.coinmarketcap.com/v1/ticker/',
headers: {
'Authorization': '',
},
}).then(...)
},
我也尝试过 auth: {...} 但这也不起作用。 解决办法是什么? 谢谢
尝试以下方法
delete axios.defaults.headers.common["Authorization"];
// or which ever header you have to remove
delete axios.defaults.headers.common["Authorization"];
将解决问题。但是记得把授权header加回去。
我在尝试使用我的 web-service 身份验证令牌查询 S3 时遇到了同样的问题。用这个修复它。
axios.get("http://api.com", {
headers:{ Authorization:""}
});
您可以将默认的 headers 更改为空字符串,这不会影响常见的默认 headers。虽然不完全确定是否所有 Web 服务都会忽略空字符串 header.
如果您已经为所有请求设置了默认 'Authorization' 您可以为该特定请求创建一个实例
var instance = axios.create();
delete instance.defaults.headers.common['Authorization'];
instance.get("http://api.com");
不发送请求:
- 修改全局
axios
默认值 - 正在创建一个新的
axios
实例
将您的请求更改为与此类似:
axios.get('http://example.com', {transformRequest: (data, headers) => {
delete headers.common['Authorization'];
return data;
}
});
我要找的答案在Apurva jain的回答的评论里贴出来了,但是没有做单独的回答,所以单独贴出来方便参考:)
一个简单的解决方案是从新的 axios 实例中删除所有常见的 header:
const awsAxios = axios.create({
transformRequest: (data, headers) => {
// Remove all shared headers
delete headers.common;
// or just the auth header
delete headers.common.Authorization;
}
});
delete request.defaults.headers.common.Authorization
request
应该是 return 的 $axios.create()
删除axios.defaults.headers.common["语言"];
要扩展@phantomraa 的回答,您可能需要使用
this.$axios.$get(
url, {
// modify auth header for current request only
transformRequest: (data, headers) => {
// prevent the header from being added by default
delete headers.common['Authorization'];
// some libraries might set it directly as well, e.g. nuxtjs/auth
delete headers['Authorization'];
return data;
}
})
抱歉,需要更多代表才能发表评论。