首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AXIOS请求与X-8月-令牌

AXIOS请求与X-8月-令牌
EN

Stack Overflow用户
提问于 2020-03-13 09:48:41
回答 3查看 8.3K关注 0票数 2

如何设置从第一个请求创建的令牌&在下一个请求中使用?尝试将其设置为"X-Auth-Token": clientToken或Authorization:Bearer ${clientToken},但仍然无法工作。

得到一个错误声明:

代码语言:javascript
复制
data: {
      description: "Missing request header 'X-Auth-Token' for method parameter of type String"
}

这是我的请求

代码语言:javascript
复制
axios
.post(tokenUrl, credentials, {
    headers: { "content-type": "application/json" }
})
.then(function(response) {
    const clientToken = response.data;
    console.log(clientToken);
    console.log("fetched token via api");

    //Get Receipt data
    const receiptUrl =
        "http://rest/financial/receipt";
    const dateRange = {
        params: {
            from: "2020-03-12",
            to: "2020-03-13"
        }
    };

    const header = {
        headers: {
            "X-Auth-Token": clientToken,
            "content-type": "application/json"
        }
    };
    axios
        .get(receiptUrl, dateRange, header)
        .then(function(response) {
            console.log(response.data);
            console.log("fetched receipts via api");
        })
        .catch(function(error) {
            console.log(error);
        });
})
.catch(function(error) {
    console.log(error);
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-13 10:11:27

你可以尝试这样的方法:

代码语言:javascript
复制
// Other code...

let data = {
    params: {
        from: "2020-03-12",
        to: "2020-03-13"
    },
    headers: {
        "X-Auth-Token": clientToken,
        "content-type": "application/json"
    }
};

axios.get(receiptUrl, data).then(function(response) {
    // ...
}).catch(function(error) {
    //...
});

检查到达方法签名,即:

代码语言:javascript
复制
axios.get(URL, { params:{}, headers: { key: 'value' } })
票数 2
EN

Stack Overflow用户

发布于 2020-03-13 10:22:05

如果令牌存在,尝试在默认标头中设置令牌。

代码语言:javascript
复制
if (clientToken) {
    axios.defaults.headers.common["x-auth-token"] = clientToken;
  } else {
    delete axios.defaults.headers.common["x-auth-token"];
  }

  const header = {
     headers: {
       "content-type": "application/json"
        }
  };
票数 3
EN

Stack Overflow用户

发布于 2020-03-13 10:02:59

您可以全局设置clientToken

代码语言:javascript
复制
const JWT_TOKEN = 'jwt_access_token';

const api = axios.create({
  baseURL: apiURL,
  timeout: 5 * 60 * 1000,
});

if (localStorage.getItem(JWT_TOKEN)) {
  const token = localStorage.getItem(JWT_TOKEN);
  api.defaults.headers.common.Authorization = `Bearer ${clientToken}`;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60668188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档