Я строй Реагировать приложение, которое тянут разные статы от услуг для наших внутренних разработчиков (зафиксируется, отслеживаются часы и т.д.) ..Ошибка аутентификации при использовании режима: нет-CORS не используя выборки в React
Я использую fetch для захвата данных API из Harvest, приложения для отслеживания времени. Согласно their docs, вы можете использовать базовую HTTP-аутентификацию. Когда я использую приложение Postman, все хорошо, и я вижу, что ответ просто замечательный. Первоначально я использовал:
getHarvest(){
// Set Harvest Headers
const harvestHeaders = {
method: 'GET',
headers: {
'Authorization': 'Basic xxxxxxxxxxxxxxx=',
'Content-Type': 'application/json',
'Accept': 'application/json',
'Cache-Control': 'no-cache',
}
};
fetch('https://factor1.harvestapp.com/projects/', harvestHeaders)
.then(response => response.json())
.then(projects => {
// Do some stuff
})
}
Это дает мне ошибку в консоли:
Fetch API cannot load https://myaccount.harvestapp.com/projects/ . Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:3000 ' is therefore not allowed access. The response had HTTP status code 404. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Так что с этим отзывом я изменил функцию, чтобы выглядеть следующим образом:
getHarvest(){
// Set Harvest Headers
const harvestHeaders = {
method: 'GET',
mode: 'no-cors',
headers: {
'Authorization': 'Basic xxxxxxxxxxxxxxx=',
'Content-Type': 'application/json',
'Accept': 'application/json',
'Cache-Control': 'no-cache',
}
};
fetch('https://factor1.harvestapp.com/projects/', harvestHeaders)
.then(response => response.json())
.then(projects => {
// do stuff
})
}
Но что результаты в ошибке аутентификации:
GET https://myaccount.harvestapp.com/projects/ 401 (Unauthorized)
Я не уверен, как правильно получить ответ. Я делаю что-то неправильно? Мне кажется странным, что использование приложения Postman работает, но это не так. Мысли? Благодаря!