Ошибка 401 при выполнении запроса GET с axios - PullRequest
0 голосов
/ 13 февраля 2019

Я могу просматривать свои данные 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)

1 Ответ

0 голосов
/ 13 февраля 2019

Сайт возвращает 401, что означает, что вы не авторизованы для доступа к URL.

Обычно это означает, что вам необходимо отправить учетные данные.

Теперь вы сказалиcredentials: "include", но это свойство, признанное fetch, а не axios.Эквивалент axios равен withCredentials: true, поэтому установите его вместо этого.


Вы также сказали mode: "no-cors",, что является другим свойством, распознаваемым fetch, а не axios.Вы все равно не хотите этого.Для отправки учетных данных требуется разрешение через CORS, поэтому, отказавшись от CORS, отклоните возможность получения разрешения на отправку учетных данных.

Удалите это свойство.

...