为什么这个 axios put 请求没有正确设置 headers
Why is this axios put request not setting the headers peoperly
所以,我正在编写一个 discord 机器人,它基本上与我为一大堆不同的命令制作的 API 联系。不幸的是,我被困在这个 put 请求上,并且我已经查明了错误。 该请求似乎没有发送我在 header 中设置的授权密钥。我检查了 APIs 日志,auth 中间件拒绝了请求,因为没有提供密钥。我将不胜感激。
- 这是一个异步函数
- 所有其他请求都有效,事实上我从以前的工作
复制并粘贴了这个header
- 此请求不需要 body
- 如果这有点相关:这是在
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'
}
}
);
从失败中收到 HEADERS:
{
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'
}
}
);
成功收到 Headers:
{
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'
}
注意:这不是使用常规身份验证请求的格式,只需将其视为未通过的 HEADER OBJECT
试试这个,如果有效请告诉我。
{ headers: {"Authorization" : `Bearer ${AUTH-KEY-GOES-HERE}`} }
注意:确保您的服务器已设置,以便它响应 url 处的 OPTIONS 请求并带有 Access-Control-Allow-Headers:授权 header。
axios.get()
和 axios.put()
没有相同的参数,但您试图对两者使用相同的参数。
axios.get(url[, config])
axios.put(url[, data[, config]])
即使您的 .put()
没有任何 data
,您也必须在第二个参数位置放置一些东西,因为没有它,axios 将采用您的配置 object作为数据而不是将其用作配置,这可能是自定义 headers 未按需要设置的原因。
所以,我正在编写一个 discord 机器人,它基本上与我为一大堆不同的命令制作的 API 联系。不幸的是,我被困在这个 put 请求上,并且我已经查明了错误。 该请求似乎没有发送我在 header 中设置的授权密钥。我检查了 APIs 日志,auth 中间件拒绝了请求,因为没有提供密钥。我将不胜感激。
- 这是一个异步函数
- 所有其他请求都有效,事实上我从以前的工作 复制并粘贴了这个header
- 此请求不需要 body
- 如果这有点相关:这是在
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'
}
}
);
从失败中收到 HEADERS:
{
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'
}
}
);
成功收到 Headers:
{
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'
}
注意:这不是使用常规身份验证请求的格式,只需将其视为未通过的 HEADER OBJECT
试试这个,如果有效请告诉我。
{ headers: {"Authorization" : `Bearer ${AUTH-KEY-GOES-HERE}`} }
注意:确保您的服务器已设置,以便它响应 url 处的 OPTIONS 请求并带有 Access-Control-Allow-Headers:授权 header。
axios.get()
和 axios.put()
没有相同的参数,但您试图对两者使用相同的参数。
axios.get(url[, config])
axios.put(url[, data[, config]])
即使您的 .put()
没有任何 data
,您也必须在第二个参数位置放置一些东西,因为没有它,axios 将采用您的配置 object作为数据而不是将其用作配置,这可能是自定义 headers 未按需要设置的原因。