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;
      }
})

抱歉,需要更多代表才能发表评论。