Я создаю веб-сайт с использованием реакции (он работает на локальном хосте: 3000), который получает информацию о своем пользователе от API, который я создал на локальном хосте: 4000.Чтобы разрешить запросы между ними, мне сказали использовать пакет npm cors, чтобы разрешать запросы из разных источников туда и обратно.Я настроил cors в своем API следующим образом: app.use(cors({credentials: true, origin: true}));
В своем приложении реагирования я использовал axios для отправки и получения запросов, у меня есть один такой запрос на получение в компоненте, который получаетответ:
isLoggedIn(){
let isLogged = false;
Fetch("http://localhost:4000/IsLogged")
.then((results)=> {
console.log(results)
isLogged = results.data
})
.catch((err) => console.log(err))
this.setState({loggedIn: isLogged})
}
componentDidMount(){
this.isLoggedIn();
}
Однако, когда я пытаюсь получить информацию о пользователе, используя этот код:
getUserDetails(){
Fetch("http://localhost:4000/userDetails")
.then((results)=> {console.log(results)})
.catch((err) => console.log(err))
}
componentDidMount(){
this.getUserDetails()
}
, я получаю этот ответ в консоли:
Access to XMLHttpRequest at 'http://localhost:3000/login' (redirected from 'http://localhost:4000/userDetails') from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Вот код на стороне сервера:
app.get("/userDetails",(req,res)=>{
//if there is no userID associated with the session then the user hasnt logged in, redirect to login
console.log(req.session.UserID)
if(!req.session.UserID) {
res.redirect("http://localhost:3000/login")
}else{
let userID = req.session.UserID
connection.query("SELECT * FROM `users` WHERE id =" + userID)
.then((rows) => res.send(rows[0]))
.catch((err) => console.error(err))
}
})
Возможно, это что-то глупое, поэтому я прошу прощения, если это действительно просто, любые ссылки на чтение по этому вопросу также были бы хорошими.Спасибо за любую помощь!