HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 12.07.2024, 18:02
Klentovskiy
Новичок
Регистрация: 28.03.2019
Сообщений: 20
С нами: 3753368

Репутация: 51
По умолчанию

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

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
 
Ответить с цитированием

  #2  
Старый 12.07.2024, 18:10
neverlane
Познавший АНТИЧАТ
Регистрация: 01.11.2018
Сообщений: 1,010
С нами: 3964085

Репутация: 183


По умолчанию

Цитата:
Сообщение от Klentovskiy  

app.use('/api', userRouter) app.use(cors())
надо подключать cors до userRouter
 
Ответить с цитированием

  #3  
Старый 12.07.2024, 18:43
Klentovskiy
Новичок
Регистрация: 28.03.2019
Сообщений: 20
С нами: 3753368

Репутация: 51
По умолчанию

Цитата:
Сообщение от neverlane  

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





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

  #4  
Старый 12.07.2024, 18:55
neverlane
Познавший АНТИЧАТ
Регистрация: 01.11.2018
Сообщений: 1,010
С нами: 3964085

Репутация: 183


По умолчанию

Цитата:
Сообщение от Klentovskiy  

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

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

если ты не хочешь чтобы промис не режектился - передай в
Код:
axios.create
поле
Код:
validateStatus
со значением
Код:
null
 
Ответить с цитированием

  #5  
Старый 12.07.2024, 19:00
Klentovskiy
Новичок
Регистрация: 28.03.2019
Сообщений: 20
С нами: 3753368

Репутация: 51
По умолчанию

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
 
Ответить с цитированием

  #6  
Старый 12.07.2024, 19:02
neverlane
Познавший АНТИЧАТ
Регистрация: 01.11.2018
Сообщений: 1,010
С нами: 3964085

Репутация: 183


По умолчанию

Цитата:
Сообщение от 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хх коды, другие - режектит (выкидывает ошибку)

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

  #7  
Старый 12.07.2024, 19:03
Klentovskiy
Новичок
Регистрация: 28.03.2019
Сообщений: 20
С нами: 3753368

Репутация: 51
По умолчанию

Цитата:
Сообщение от neverlane  

ну так все верно, axios по дефолту резолвит 2хх коды, другие - режектит (выкидывает ошибку)
выше написал как решить проблему
Всё я понял, я дурик, я забыл код ошибки поменять я вместо 200 кода возвращал 400
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.