После решения проблемы cors сообщение на ajax с виртуальной машины возвращает ошибку 500, запрос не выполнен - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь выполнить POST на сервере с виртуальной машины под управлением virtualbox windows 7. И сервер работает локально на той же машине, но на linux. Изначально у него были проблемы с CORS, затем я загрузил расширение для CORS 'Allow-Control-Allow-Origin:', '*' из https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=pt-BR.

После того, как я скачал расширение chrome, проблема cors прекратилась. Но теперь то, что приходит ко мне, это сообщение: POST http://servidor.hanbai:8081/api/aa/v1/pedidos 500 (запрос не выполнен)

Единственное сообщение, кроме этого, является предупреждением: Блокировка считывания перекрестного источника (CORB) блокировала ответ перекрестного происхождения http://servidor.hanbai:8081/api/aa/v1/pedidos с приложением MIME-типа / vnd.sun.wadl + xml. Подробнее см. https://www.chromestatus.com/feature/5629709824032768.

Но когда я примеряю POSTMAN, никаких проблем не возникает. Что может быть?

function enviaParaHanbai(pedido) {
console.log(pedido);
let urlPedidoCriado;
$.ajax({
        type: "POST",
        url: "http://servidor.hanbai:8081/api/aa/v1/pedidos",
        data: JSON.stringify(pedido),
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',

        },
        success: function(data, status, request) {
            console.log(data);
            console.log(status);
            console.log(request);
            urlPedidoCriado = request.getResponseHeader('location');
            console.log(urlPedidoCriado);
            const regex = /(?<=pedidos\/).*$/gi;
            let match = regex.exec(urlPedidoCriado);
            let idPedidoCriado = match[0];
            console.log(idPedidoCriado);
            renderizaDivPedidoRealizadoComSucesso(idPedidoCriado);
        },
        error: function (data, status, request) {
            console.log(data);
            console.log(request);
            console.log(status);
            console.log("erro no envio do pedido para o hanbai");
        }
});
}

1 Ответ

0 голосов
/ 07 июня 2019

Вместо расширения Chrome для включения CORS, используйте это руководство, чтобы помочь вам добавить заголовки на ваш сервер (https://www.w3.org/wiki/CORS_Enabled). Что касается ошибки, попробуйте добавить параметр dataType в ваш вызов ajax и указатьданные. Кроме этого, установите Fiddler и отладьте его. Надеюсь, это поможет

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