【问题标题】:Basic Auth is not working with Axios post Nodejs基本身份验证不适用于 Axios post Nodejs
【发布时间】:2021-11-15 05:54:58
【问题描述】:

我正在尝试使用具有基本授权的 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 调用它时,它可以正常工作:

Postman Setup Image

【问题讨论】:

    标签: node.js post axios


    【解决方案1】:

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

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

    edit:好的,抱歉,我很困惑,以为您正在向您自己的 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)
    })
    

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

    【讨论】:

    • node.js 标签表示此代码将在服务器端运行;因此,CORS 不是一个考虑因素。此外,尚不清楚 OP 是否控制使用 axios 调用的服务器,并且是否有足够的控制权来更改所述服务器的 CORS 配置。
    • 啊,我明白了。似乎它的措辞是建议“axios 发布到 NodeJS 服务器”,my-url 表明他控制着所述服务器。希望他措辞更仔细。
    • 我无法控制更改 API 即 my-url。 @GandalfTheGrey
    猜你喜欢
    • 2019-04-12
    • 2021-01-13
    • 2019-06-24
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多