@Devastor
I ❤❤❤ JAVASCRIPT

Как отключить защиту CORS в nodeJS?

Добрый день, в PHP для отключения CORS защиты я прописываю 3 заголовка:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: *');
header('Access-Control-Allow-Headers: content-type');

В NodeJS попробовал тоже самое, но не сработало. Как отключить защиту CORS в nodeJS?
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Allow-Headers", "content-type");
  • Вопрос задан
  • 6895 просмотров
Решения вопроса 2
MarcusAurelius
@MarcusAurelius
автор Impress Application Server для Node.js
Вы уже сами почти все написали, только в Access-Control-Allow-Headers не добавили origin. Нужно:
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'origin, content-type, accept');

Но проблема может быть еще и не в этом, если Вы пробуете делать это локально и обращаетесь к localhost, то вот оно и не будет работать, эти заголовки будут игнорироваться браузером. Используйте локальный IP вместо localhost пишите 127.0.0.1
Ответ написан
@AnImAsHkO
Как вариант:
app.use(function (req, res, next) {
    var origins = [
        'http://example.com',
        'http://www.example.com'
    ];

    for(var i = 0; i < origins.length; i++){
        var origin = origins[i];

        if(req.headers.origin.indexOf(origin) > -1){
            res.header('Access-Control-Allow-Origin', req.headers.origin);
        }
    }
    
    res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы