我可以在浏览器中查看JSON数据,但不能在控制台中查看。我对axios不太熟悉,但是我认为问题出在URL(请参见下面的代码段)。那样的话,或者我在axios.get {
中丢失了一些东西。
有什么想法吗?
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);
})
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)
答案 0 :(得分:1)
该网站返回的401
表示您无权访问该URL。
通常,这意味着您需要发送凭据。
现在,您说的是credentials: "include",
,但这是fetch
而非axios
可以识别的属性。与axios
等价的是withCredentials: true
,因此应进行设置。
您还说过mode: "no-cors",
,这是fetch
而不是axios
可以识别的另一个属性。无论如何你都不想要它。发送凭据需要通过CORS进行许可,因此通过拒绝CORS,可以拒绝获得发送凭据的许可的可能性。
删除该属性。