Ajax после вызова выдает ошибку net :: ERR_UNKNOWN_URL_SCHEME - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь сделать пост-звонок через ajax с моего внешнего интерфейса на мой экспресс-сервер, но я получаю ошибку net :: ERR_UNKNOWN_URL_SCHEME.Код для AJAX ниже

function sendSteps(encodedLatLangs) {
    $.ajax({
        url: 'localhost:3000/route',
        type: "POST",
        dataType: "jsonp",
        contentType: "jsonp; charset=utf-8",
        crossDomain:true,
        data: JSON.stringify({
            steps: encodedLatLangs
        }),
        success: function (response) {
            console.log(done);
        },
        error: function (request,error) {
            console.log('Ajax call gave an error');
        }
    })};

Моя консоль показывает это.

Вот так я обрабатываю почтовый запрос к этой конечной точке на бэкэнде

router.post('/route',function (req, res) {
    
    console.log("Hello Received the Data");
    res.send("Hello Received the Data");
    //Doing something with the received data
});

Может кто-нибудь пролить свет на это.Благодаря.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Это можно сделать, установив «Access-Control-Allow-Origin» в заголовке ответа.Что-то вроде этого.Для получения более подробной информации посетите https://enable -cors.org / server_expressjs.html А также мы должны удалить «тип данных» и «тип содержимого» из запроса ajax.

router.route('/route')
    .post((req, res, next) => {
        controllers
            .post(req.body)
            .then(data => {
                res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
                res.send(message.generateMessage(200, '', data))
            })
            .catch(err => next(err))
    })
0 голосов
/ 30 сентября 2018

С JSONP вы можете отправлять только GET запрос (JSONP вставляет script теги в DOM).

Ваш data должен быть строкой &key=value и contentTypeis application/javascript

Попробуйте:

function sendSteps(encodedLatLangs) {
    $.ajax({
        url: 'localhost:3000/route',
        dataType: "jsonp",
        contentType: "application/javascript; charset=utf-8",
        crossDomain: true,
        data: 'steps=' + encodeURIComponent(JSON.stringify(encodedLatLangs)),
        success: function (response) {
            console.log(done);
        },
        error: function (request, error) {
            console.log('Ajax call gave an error');
        }
    });
};

Или используйте JSON (если вы владелец сервера и можете настроить CORS).

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