为什么这个 axios put 请求没有正确设置 headers

Why is this axios put request not setting the headers peoperly

所以,我正在编写一个 discord 机器人,它基本上与我为一大堆不同的命令制作的 API 联系。不幸的是,我被困在这个 put 请求上,并且我已经查明了错误。 该请求似乎没有发送我在 header 中设置的授权密钥。我检查了 APIs 日志,auth 中间件拒绝了请求,因为没有提供密钥。我将不胜感激。

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 未按需要设置的原因。