PDA

Просмотр полной версии : cors error


Klentovskiy
12.07.2024, 18:02
Как исправить ошибку:

Access to XMLHttpRequest at 'http://localhost:5000/api/get (https://www.blast.hk/redirect/aHR0cDovL2xvY2FsaG9zdDo1MDAwL2FwaS9nZXQ)' from origin 'http://localhost:3000 (https://www.blast.hk/redirect/aHR0cDovL2xvY2FsaG9zdDozMDAw)' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Написал API на express а так же само приложение на react, но при отправке запросов через axios непосредственно из react приложения к API получаю выше упомянутую ошибку, в express приложение установил cors, подключил, как было сказано на многих форумах и видосах, но результата не получил, получаю всю ту же ошибку, в чём может быть проблема?

P.S Так же проверял работаспособность API с помощью insomnia, сама API работает без проблем

Код сервака

JavaScript:






const
express
=
require
(
'express'
)
const
userRouter
=
require
(
'./router/userRouter.js'
)
const
cors
=
require
(
'cors'
)
const
PORT
=
5000
const
app
=
express
(
)
app
.
use
(
express
.
json
(
)
)
app
.
use
(
'/api'
,
userRouter
)
app
.
use
(
cors
(
)
)
const
start
=
(
)
=>
{
try
{
app
.
listen
(
PORT
,
(
)
=>
console
.
log
(
`server started on PORT${PORT}`
)
)
}
catch
(
e
)
{
console
.
log
(
e
)
}
}
start
(
)




Вот как я делаю запрос непосредственно в React

JavaScript:






useEffect
(
(
)
=>
{
axios
.
get
(
'/api/get'
)
.
then
(
(
res
)
=>
{
console
.
log
(
res
)
}
)
}
,
[
]
)




(Предварительно ещё создал отдельный файл под axios

Где для удобства импортнул сам axios и сделал базовый url для того что бы легче делать запросы)

JavaScript:






import
axios
from
'axios'
const
instance
=
axios
.
create
(
{
baseURL
:
'http://localhost:5000'
}
)
export
default
instance






@neverlane (https://www.blast.hk/members/251090/)

neverlane
12.07.2024, 18:10
app.use('/api', userRouter) app.use(cors())


надо подключать cors до userRouter

Klentovskiy
12.07.2024, 18:43
надо подключать cors до userRouter


Да действительно пофиксилось, но теперь я получаю в ответ

https://forum.antichat.xyz/attachments/28518352/

https://forum.antichat.xyz/attachments/28518352/

Хотя повторюсь API работает правильно, когда в открываю эту страницу у меня всё работает, когда я делаю запросы через insomnia тоже всё работает

neverlane
12.07.2024, 18:55
Да действительно пофиксилось, но теперь я получаю в ответ

Хотя повторюсь API работает правильно, когда в открываю эту страницу у меня всё работает, когда я делаю запросы через insomnia тоже всё работает


а я ебу что у тебя в userRouter?

если ты не хочешь чтобы промис не режектился - передай в

axios.create

поле

validateStatus

со значением

null

Klentovskiy
12.07.2024, 19:00
JavaScript:






const
jwt
=
require
(
'jsonwebtoken'
)
const
{
secret
}
=
require
(
'../config.js'
)
const
db
=
require
(
'../settings/db.js'
)
class
userController
{
async
get
(
req
,
res
)
{
try
{
res
.
status
(
400
)
.
json
(
{
message
:
'success'
}
)
}
catch
(
e
)
{
}
}
}
module
.
exports
=
new
userController
(
)




userRouter

neverlane
12.07.2024, 19:02
JavaScript:






const
jwt
=
require
(
'jsonwebtoken'
)
const
{
secret
}
=
require
(
'../config.js'
)
const
db
=
require
(
'../settings/db.js'
)
class
userController
{
async
get
(
req
,
res
)
{
try
{
res
.
status
(
400
)
.
json
(
{
message
:
'success'
}
)
}
catch
(
e
)
{
}
}
}
module
.
exports
=
new
userController
(
)




userRouter


ну так все верно, axios по дефолту резолвит 2хх коды, другие - режектит (выкидывает ошибку)

выше написал как решить проблему

Klentovskiy
12.07.2024, 19:03
ну так все верно, axios по дефолту резолвит 2хх коды, другие - режектит (выкидывает ошибку)
выше написал как решить проблему


Всё я понял, я дурик, я забыл код ошибки поменять я вместо 200 кода возвращал 400