Невозможно получить данные из другого источника / хоста JQuery Nodejs - Express - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь получить простые данные с другого хоста, используя запрос JQuery Ajax. Вот пример для воспроизведения:

Node.js express файл сервера server.js:

var express = require('express');
var app = express();
var path = require('path');
// var cors = require('cors')
// app.use(cors());
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) {
    console.log(res.getHeaders());
    res.sendFile(path.join(__dirname + '/index.html'));
});

app.listen(3000, function name(params) {
    console.log(`App listening on port 3000`);
});

Это файл html index.html:

<!DOCTYPE html>
<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script>
      $(document).ready(function() {
        console.log(`Request start`);
        $.ajax({
          type: "GET",
          url: "https://csrhub.com/number/",
          crossDomain: true,
          success: function(data, status) {
            console.log(data);
            alert("Thanks!");
          },
          error: function(jqXhr, textStatus, errorMessage) {
            console.log(textStatus);
            console.log(errorMessage);
          }
        });
      });
    </script>
  </head>
  <body>
    <p>This is a paragraph.</p>
  </body>
</html>

И при загрузке файла в Chrome я получаю следующие ошибки:

Консоль: enter image description here А вот заголовки из выборки ресурса: enter image description here enter image description here

Сообщение носит описательный характер, но действительно ли этот перекрестный исходный запрос настолько необычен? Я имею в виду, что веб-интерфейсу нужно разрешить запрашивать API, например. Могу ли я сделать эту работу без обходного пути chrome? Мне нужен этот функционал в производстве. Как сделать эту работу?

РЕДАКТИРОВАТЬ Ребята, вы читали ответ мой вопрос предлагается дублировать? Это не дубликат. Я владелец сервера. Я поставил необходимые заголовки. Я также установил https://www.npmjs.com/package/cors и попробовал еще раз. Такая же ситуация! Я прочитал оригинальный вопрос. Вопрос и контекст не совпадают. Это не дубликат. Почему это закрыто? Я применил необходимые заголовки, которые позволяют CORS. Это все еще не работает. Почему?

Изменен код в соответствии с предложениями @ Joodjindy

Вот еще один пример в реальном времени https://youtu.be/ROWfnwBtQYE

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