jQuery ajax-запрос успешно выполняется в консоли, но обратный вызов не вызывается - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть запрос jQuery POST, который выглядит примерно так:

$.ajax("/myurl",{
    data:{
        ...
    },
    mimeType:"application/json",
    dataType:"application/json",
    method:"POST",
    success:function(r){
        console.log("success");
    },
    error:function(r){
        console.log("error");
        console.log(r);
    }
});

Я включил регистрацию XHR в моей консоли Chrome, и там написано XHR finished loading: POST http://localhost/myurl. Однако «ошибка» также регистрируется в моей консоли вместе с объектом XHR:

error
{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
XHR finished loading: POST "http://localhost/myurl"

Почему говорится, что XHR завершил загрузку, но в то же время произошла ошибка? Почему там даже ошибка? На стороне сервера сервер получает запрос и отправляет ответ.

1 Ответ

0 голосов
/ 10 ноября 2018

Наиболее вероятное объяснение состоит в том, что то, что сервер отправляет обратно, не является допустимым JSON, поэтому, хотя ajax успешно выполняется, синтаксический анализ JSON завершается неудачей.

Ваш dataType выключен, однако он должен иметь одно из следующих значений: "xml", "json", "script" или "html" & mdash; в вашем случае "json". Вам также не нужно (и, вероятно, не хотите) устанавливать mimeType.

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