簡體   English   中英

為什么這個 axios put 請求沒有單獨設置標頭

[英]Why is this axios put request not setting the headers peoperly

所以,我正在編寫一個 discord bot,它基本上連接了我為一大堆不同命令制作的 API。 不幸的是,我被困在這個 put 請求上,我已經查明了錯誤。 該請求似乎沒有發送我在標頭中設置的身份驗證密鑰。 我檢查了 API 日志,auth 中間件拒絕了請求,因為沒有提供密鑰。 我將不勝感激任何幫助。

  • 這是在異步函數中
  • 所有其他請求都有效,實際上我從以前的工作中復制並粘貼了此標頭
  • 此請求不需要正文
  • 如果這有點相關:這是在collector.on('collect', async () => {HERE})
let updatedUser = await axios.put(
                            `https://API-URL-GOES-HERE/api/users/${username}/loaChange`,
                            {
                                headers: {
                                    auth:
                                        'AUTH-KEY-GOES-HERE'
                                }
                            }
                        );

從失敗中收到的標題:

{
   host: 'API-URL-HERE.herokuapp.com',
   connection: 'close',
   accept: 'application/json, text/plain, */*',
   'content-type': 'application/json;charset=utf-8',
   'user-agent': 'axios/0.19.0',
   'x-request-id': 'REQID',
   'x-forwarded-for': 'IPADRESS',
   'x-forwarded-proto': 'https',
   'x-forwarded-port': '443',
   via: '1.1 vegur',
   'connect-time': '2',
   'x-request-start': '1577766826940',
   'total-route-time': '5',
   'content-length': '194'
 }

以前的成功請求:

let initialUser = await axios.get(
                        `https://API-URL-GOES-HERE/api/users/${username}`,
                        {
                            headers: {
                                auth:
                                    'AUTH-KEY-GOES-HERE'
                            }
                        }
                    );

從成功收到的標題:

{
host: 'API-URL-HERE.herokuapp.com',
  connection: 'close',
   accept: 'application/json, text/plain, */*', 
  auth: 'AUTH-KEY-HERE',
   'user-agent': 'axios/0.19.0',
   'x-request-id': 'REQID',
   'x-forwarded-for': 'IPADDRESS',
  'x-forwarded-proto': 'https',
 'x-forwarded-port': '443',
   via: '1.1 vegur',
   'connect-time': '0',
   'x-request-start': '1577766773203',
   'total-route-time': '0'
 }

注意:這不是使用常規身份驗證請求的格式,只是將其視為未通過的標頭對象

axios.get()axios.put()沒有相同的參數,但您試圖為兩者使用相同的參數。

axios.get(url[, config])
axios.put(url[, data[, config]])

即使您的.put()沒有任何data ,您也必須將某些內容放在第二個參數位置,因為沒有它,axios 會將您的配置對象作為數據而不是將其用作配置,這可能是為什么自定義標頭未按需要設置。

試試這個,讓我知道它是否有效。

{ headers: {"Authorization" : `Bearer ${AUTH-KEY-GOES-HERE}`} }

注意:確保您的服務器已設置,以便它使用 Access-Control-Allow-Headers: Authorization 標頭響應該 url 上的 OPTIONS 請求。

暫無
暫無

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

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