簡體   English   中英

Axios 正在發送錯誤的令牌

[英]Axios is sending the wrong token

在 React 中,這是有效的:

let token = localStorage.getItem("token");

axios
      .post(
        `http://localhost/api`,
        (data: data),
        {
          crossdomain: true,
        },
        {
          headers: {
            Authorization: `Bearer ${token}`,
            Accept: "application/json",
            "Content-Type": "application/json",
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Methods": "POST",
            "Access-Control-Allow-Headers": "Content-Type, Authorization",
            "Access-Control-Allow-Credentials": "true"
          },
        }
      )

一切都好。 它帶來成功。

但是在 React Native (AsyncStorage) 中,它給出了錯誤的令牌錯誤 (403):

let token = AsyncStorage.getItem("token");

    axios
          .post(
            `http://localhost/api`,
            (data: data),
            {
              crossdomain: true,
            },
            {
              headers: {
                Authorization: `Bearer ${token}`,
                Accept: "application/json",
                "Content-Type": "application/json",
                "Access-Control-Allow-Origin": "*",
                "Access-Control-Allow-Methods": "POST",
                "Access-Control-Allow-Headers": "Content-Type, Authorization",
                "Access-Control-Allow-Credentials": "true"
              },
            }
          )

在 console.log(token) 中,一切看起來都很棒。 我可以看到我的令牌。 它也適用於 Postman。

根據文檔

回報:

Promise使用字符串值解析,如果給定key存在條目,否則null

Promise也可以在底層存儲錯誤的情況下被拒絕。

由於它返回Promise ,因此您應該使用.then()async/await獲取令牌:

async function doRequest() {
  let token = await AsyncStorage.getItem("token");
  // do request
} 

我想知道以后看到這個帖子的人Axios沒有在React-Native中發送我的標題。 在這種情況下,也許你應該嘗試 fetch。

@Rafael 的回答也很棒。

fetch("http://localhost/api", {
      method: "post",
      headers: new Headers({
        "x-auth-token": `${token}`,
        "Content-Type": "application/json",
      }),
      body: {
        body
      },
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM