Как включить CORS для сервера nodejs Express? - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь использовать Ajax-запрос на моем внешнем интерфейсе:

$.ajax({
    type: "GET",
    url: "localhost:3000/send",
    beforeSend:function(){
             $(".loading_msg").hide();
        },
    complete:function(){
             $(".loading_msg").show();
        }
});

Но при загрузке страницы, содержащей скрипт, я получаю следующую ошибку:

Доступ к XMLHttpRequest на «localhost: 3000 / send» от источника 'http://localhost:3000' заблокирован политикой CORS: перекрестное происхождение запросы поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https.

И

Не проверено runtime.lastError: Порт сообщения закрыт перед ответом был получен.

Я пробовал много вещей, таких как добавление промежуточного программного обеспечения для выражения вроде:

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();
   });

Что не имеет значения.

Я также попытался установить пакет cors npm и сделал

const cors=require('cors')
app.use(cors())
app.options('*', cors());

Это тоже не имело значения.

Я также попытался изменить URL ajax, добавив https://

 url: "https://localhost:3000/send",

Хотя это и устраняет ошибку CORS, она дает мне еще одну ошибку:

GET https://localhost:3000/send net :: ERR_SSL_PROTOCOL_ERROR

Как отправляется Ajax-запрос с экспресс-сервера Nodejs при использовании localhost?

Ответы [ 2 ]

2 голосов
/ 24 марта 2019

В вашем сообщении об ошибке cors четко сказано, что вам нужно использовать http при выполнении запроса

$.ajax({
    type: "GET",
    url: "http://localhost:3000/send",
    beforeSend:function(){
             $(".loading_msg").hide();
        },
    complete:function(){
             $(".loading_msg").show();
        }
});
0 голосов
/ 24 марта 2019

Вам понадобится этот популярный пакет, CORS .Другим обходным решением является добавление серверной части в ваше веб-приложение с использованием экспресс-сервера и использование пакета axios / request npm для запроса данных с сервера API, использующего http, тогда вы не столкнетесь с проблемой CORS..

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