执行带有axios的GET请求时出现401错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行带有axios的GET请求时出现401错误相关的知识,希望对你有一定的参考价值。

我可以在浏览器中查看我的JSON数据,但不能在我的控制台中查看。我对axios并不是很熟悉,但我认为问题在于url(参见下面的代码片段)。那,或者我在axios.get {内遗漏了一些东西。

有什么想法吗?

server.js:

axios.get("https://handshake.[redacted].com/HandshakeWebServices/Odata/Odata.ashx/HS[redacted]?hsf=@UserName=%27[redacted]%27&$select=PreferredName,Initials,JobTitle,Office", {
    crossDomain: true,
    method: "GET",
    credentials: "include",
    mode: "no-cors",
    headers: {
        "Accept": "application/json; odata=verbose"
    }
})
.then(function(res){
  console.log(res.data);
})
.catch(function(e){
  console.log(e);
})

console:

GET https://handshake.[redacted].com/HandshakeWebServices/Odata/Odata.ashx/HS[redacted]?hsf=@UserName=[redacted]&$select=PreferredName...etc 401 (Unauthorized)

server.js?1d69:18 Error: Request failed with status code 401
    at createError (createError.js?2d83:16)
    at settle (settle.js?467f:18)
    at XMLHttpRequest.handleLoad (xhr.js?b50d:77)
答案

该网站正在返回401,这意味着您无权访问该URL。

通常,这意味着您需要发送凭据。

现在,你已经说过credentials: "include",,但这是fetch认可的财产,而不是axiosaxios等价物是withCredentials: true,所以设置相反。


你还说mode: "no-cors",fetch认可的另一个属性,而不是axios。无论如何你不想要它。发送凭据需要通过CORS许可,因此拒绝CORS,拒绝获得发送凭据的权限的可能性。

删除该属性。

以上是关于执行带有axios的GET请求时出现401错误的主要内容,如果未能解决你的问题,请参考以下文章

向 Spotify API 发出 PUT 请求时出现 401 错误

使用 Axios 和 Firebase 时出现 401 未经授权的错误

使用 httr get 时出现错误 401

进行 axios.get 调用时出现 CORS 错误

使用 Coldfusion/Railo 向 Mailchimp API v3.0 发送 PUT 请求时出现 401 未经授权的错误

通过axios发送文件时出现500错误