Ajax done () или успешные обратные вызовы не запускаются в WordPress - PullRequest
0 голосов
/ 02 июля 2019

Я использую Ajax-вызов для выполнения запроса POST, и впоследствии выполняется вызов API.Результат затем возвращается.Первоначально я использовал обратный вызов успеха, который запускался, но затем по какой-то причине он перестал работать, и я прочитал, что он был заменен на готовый, поэтому я попытался изменить его.Я не знаю почему, но сейчас ни готово, ни успех не сработает. Я недавно обновил браузер, так что, возможно, это как-то связано с этим.Я также запускаю его в Wordpress.200 возвращается на вкладке сети со статусом и сообщением, закодированным как JSON.Версия jQuery - 1.12.4.Хотя вызов Ajax завершается, в консоли ничего не регистрируется, и диалоговое окно не открывается.Как я могу заставить это работать?

$.ajax({
  type: 'POST',
  dataType: 'json',
  url: ajax_object.ajax_url,
  data: {
    'action': $action,
    'product_id': $product_id,
  },
  success: function(data) {
    console.log(data.message);
    $( "#dialog" ).text(data.message);
    $( "#dialog" ).dialog( "option", "title", "API - " + data.status );
    $( "#dialog" ).dialog("open");
  }
  });

$.ajax({
  type: 'POST',
  dataType: 'json',
  url: ajax_object.ajax_url,
  data: {
    'action': $action,
    'product_id': $product_id,
  }
}).done(function(result) {
    console.log(result.message);
    $( "#dialog" ).text(result.message);
    $( "#dialog" ).dialog( "option", "title", "API - " + result.status );
    $( "#dialog" ).dialog("open");
  });

1 Ответ

1 голос
/ 02 июля 2019

Удалите параметр dataType из вашего jQuery, JSON-преобразование, которое AJAX использует перед триггером .done (), завершается неудачей, потому что что-то отсутствует / ошибка в JSON из API. Вы можете проверить это, добавив .fail () после .done (), и вы увидите, как это происходит с ошибкой.

$.ajax({}).done().fail(error => console.log(error) 

jQuery.ajax пытается преобразовать тело ответа в зависимости от указанный dataType параметр или заголовок Content-Type, отправленный сервер. Если преобразование не удается (например, если JSON / XML является недействительным), Ошибка обратного вызова.

Ajax-запрос возвращает 200 OK, но вместо успеха генерируется событие ошибки

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