Не работает Access-Control-Allow-Origin на сервере, что делать?

Всем доброго времени суток друзья, возникла проблема с сервером, а проблема вот в чем:
Когда я добавляю на сервере в файл /etc/nginx/sites-available/default, в location заголвок
add_header "Access-Control-Allow-Origin" "*" always;

все работает отлично, но когда я на сервере, где использую express делаю тоже самое, через
res.setHeader('Access-Control-Allow-Origin', '*');
перестают работать межсайтовые запросы, при том что в postman отображается этот заголовок
Просто я хочу что бы на некоторые url можно было делать всем, а на некоторые только определенному сайту
Есть идеи в чем проблема? буду очень благодарен
Ниже код от node js

import express from 'express'
import jwt from 'jsonwebtoken'
import mysql from 'mysql2/promise'
import {validationResult} from "express-validator";
import bcrypt from 'bcrypt'

const app = express()
app.use(express.json())

app.post('/auth/login' , (req, res) => {

    console.log(req.body)

    const token = jwt.sign(
        {
        email: req.body.email,
        fullName: 'вася Пупкин'
        },
        '4hdrdw62'

    )

    res.json({
        success: true,
        token: token

    })
})

app.listen(4444, (err) => {
    if(err) {
        return console.log(err)
    }

    console.log('Server OK')
})
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Скорее всего, браузер использует CORS preflight для вашего запроса.
В этом случае перед запросом POST браузер делает запрос OPTIONS, на который сервер должен ответить, вернув код 2xx и CORS-заголовки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dryzhkov
Так можно использовать мидллвейр cors
npm install cors

app.options('*', cors())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы