Я создаю приложение реакции, первый экран - это форма входа в систему, которая вызывает ресурс GET rest api на другом хосте (8080) (для решения проблемы CORS было установлено расширение CORS на chrome).
Послевход в систему успешно, попытка выполнить еще одну GET-выборку, но на этот раз я получаю 401!
Попытка установки учетных данных: «same-origin» или учетных данных: «include» (как в вызовах, так и во втором), ноэто не помогло!
fetch('http://<some host>:8080/WebServices/api/SessionManager/login?userName='
+ this.state.userName + '&password=' + this.state.password,
{
//credentials: "include",
//mode: "no-cors"
})
.then(
(response) => {
if (response.status < 200 || response.status > 300) {
console.log('Looks like there was a problem. Status Code: ' +
response.status);
this.state.showError = true;
this.state.errorMessage = 'Please enter a valid credentials.';
return;
} else {
localStorage.setItem('session', response);
console.log("Response ======>", response);
window.location.href = '/main';
}
}
)
.catch((error) => {
console.error(error);
});
второй вызов:
function getSession(){
return localStorage.getItem('session').then(response => JSON.parse(response))
}
function getProjectDetails(){
let params = getSession();
let headers = new Headers();
fetch('http://<host>:8080/WebServices/api/ProjectManager/getProjectDetails?userSessionId=', params
// {
// //credentials: "include",
// //credentials: "same-origin",
// //crossdomain: true,
// //mode: 'no-cors',
// //headers: headers
// }
)
//.then(res => res.json())
.then((data) => {
this.setState({ projectsDetails: data })
console.log(data);
})
.catch(console.log);
} Класс App расширяет компонент {
Есть ли способ получить сеанс из файлов cookie браузера?и установить его в заголовок или параметры выборки?как я могу решить это?