ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   cors error (https://forum.antichat.xyz/showthread.php?t=1516000)

Klentovskiy 12.07.2024 18:02

Как исправить ошибку:

Access to XMLHttpRequest at 'http://localhost:5000/api/get' from origin 'http://localhost:3000' 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

neverlane 12.07.2024 18:10

Цитата:

Сообщение от Klentovskiy

app.use('/api', userRouter) app.use(cors())

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

Klentovskiy 12.07.2024 18:43

Цитата:

Сообщение от neverlane

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

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

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

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

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

neverlane 12.07.2024 18:55

Цитата:

Сообщение от Klentovskiy

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

Хотя повторюсь 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

Цитата:

Сообщение от Klentovskiy

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

Цитата:

Сообщение от neverlane

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

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


Время: 13:42