cors error

Klentovskiy

Известный
Автор темы
19
0
Как исправить ошибку:

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
 
Решение
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

Известный
Автор темы
19
0
надо подключать cors до userRouter
Да действительно пофиксилось, но теперь я получаю в ответ

1720795336468.png


1720795521029.png


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

neverlane

t.me/neverlane00
Друг
1,010
1,163
Да действительно пофиксилось, но теперь я получаю в ответ

Посмотреть вложение 246129

Посмотреть вложение 246132

Хотя повторюсь API работает правильно, когда в открываю эту страницу у меня всё работает, когда я делаю запросы через insomnia тоже всё работает
а я ебу что у тебя в userRouter?
если ты не хочешь чтобы промис не режектился - передай в axios.create поле validateStatus со значением null
 

neverlane

t.me/neverlane00
Друг
1,010
1,163
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

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