首页 > 解决方案 > 基本身份验证不适用于 Axios post Nodejs

问题描述

我正在尝试使用具有基本授权的 axios post 发送请求。邮递员可以正常工作,但当我尝试通过代码发送时无法正常工作。

axios.post(`my-url`, {
headers: {
 'Content-Type': 'application/json',
 'Authorization': 'Basic **KEY_HERE**',
},
data: {
 'id': 'event_order',
 'date': '2021-09-09'
}
}).then(async (response) => {
console.log(response.data)
})

它返回 401 Unauthorized。但是,当我通过 Postman 调用它时,它的工作方式例外:

邮递员设置图像

标签: node.jspostaxios

解决方案


您是否将域添加到 cors 模块中的白名单?如果不:

app.use(cors({ origin: "PROTOCOL://DOMAIN:PORT", credentials: true })); 

编辑:好的,对不起,我很困惑,以为您正在向您自己的 NodeJS 服务器发送前端 axios 发布请求。如果可以的话,能不能说的更准确点。但是尝试将 headers/auth 作为第三个参数传递——因为你在第二个参数中传递了所有内容,所以 API 不会解析你的 headers,因为它是 data 参数的一部分。

const data = {
  'id': 'event_order',
  'date': '2021-09-09'
}
axios.post(`my-url`, data, {
  headers: {'Content-Type': 'application/json'},
  auth: {
    username: "YOUR_USERNAME",
    password: "YOUR_PASS"
  }
})
.then(async (response) => {
  console.log(response.data)
})

如果可以的话,也尝试发布网络错误。


推荐阅读