@Bounti

Как с помощью чистого JavaScript сделать GET запрос к NodeJS REST API?

Здравствуйте, мне необходимо запросить данные с Node JS REST API.
По адресу 127.0.0.1:8080/api/bears приходит следующий JSON:

4Qkzh1T.png

Вот код, запрашивающий данные.

var xhr = new XMLHttpRequest();
xhr.open('GET', '127.0.0.1:8080/api/bears', true);
xhr.send();
if (xhr.status != 200) {
console.log(xhr.status + ': ' + xhr.statusText);
}
else {
return xhr.responseText;
}

После выполнения выдаёт ошибку:
XMLHttpRequest cannot load 127.0.0.1:8080/api/bears. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Подскажите пожалуйста, что я не так делаю.
  • Вопрос задан
  • 1100 просмотров
Решения вопроса 2
@magazovski
У вас кросдоменный запрос. Решать можно разными способами, например добавить заголовок Access-Control-Allow-Origin в Node.JS

app.use(function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    next();
})
Ответ написан
Комментировать
@Div100
enable-cors.org/server_expressjs.html
Вот здесь есть вся информация для сервера, выбираете на чем написана ваша система и получаете то, что нужно

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

app.get('/', function(req, res, next) {
  // Handle the get for this route
});

app.post('/', function(req, res, next) {
 // Handle the post for this route
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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