Узел JS Express Server - блокировка перекрестного запроса, даже со всеми правильными заголовками - PullRequest
0 голосов
/ 26 мая 2018

Несмотря на наличие правильных заголовков на моем сервере nodejs:

app.get('/api', function(req, res){
    res.header('Access-Control-Allow-Origin'. '*');
    res.header('Access-Control-Allow-Methods', 'GET');
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');

    res.status(200).send({'a':'b'});
});

Когда я делаю запросы в своем браузере Firefox, я все равно получаю сообщение об ошибке:

"Блокировка перекрестного запроса:Такая же политика происхождения запрещает чтение удаленного ресурса на http://www.example.com/api/. (причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin'). "

Вот как я делаю запрос на клиентесторона:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
    if(this.readyState === 4 && this.status === 200){
        console.log(this.response);
    }
};
xhr.open('GET', 'http://www.example.com/api', true);
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.setRequestHeader('Access-Control-Allow-Methods', 'GET');
xhr.setRequestHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
xhr.send(null);

1 Ответ

0 голосов
/ 06 июня 2018

Не устанавливайте «Access-Control-Allow-Origin» на стороне клиента, он должен быть добавлен только на стороне сервера. Итак, сервер знает, что принимать запросы от всех источников.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...