![](/img/trans.png)
[英]Axios, fetch() setting request headers into Access-Control-Request-Headers instead of separate headers
[英]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.