Javascript и PHP ajax вызов с несколькими возвращаемыми значениями возвращает неопределенное - PullRequest
2 голосов
/ 16 апреля 2019

У меня есть следующий код, с помощью которого я пытаюсь выполнить вызов AJAX, который может возвращать несколько значений

    // Make an ajax call to insert a new row.
    // Newer jquery uses done and fail instead of success and error.
    $.post("add_row_item.php", {
      work_order_id: 1
    }).done(function(data) {
      // Ajax request was successful.
      console.log(data);
      // Check if database query produced errors.
      if(data.error != "") {
        alert('Error trying to add a row - ' + data.error);
      }
    }).fail(function(xhr, status, error) {
      // Ajax request failed.
      var errorMessage = xhr.status + ': ' + xhr.statusText;
      alert('Error trying to add a row - ' + errorMessage);
    });

Код PHP кодирует возвращаемое сообщение следующим образом:

echo json_encode(array("error" => "Error: " . mysqli_error($con)));

Я получаю на консоли браузера следующее:

{"error":"Error: Table 'db.tutorials' doesn't exist"}

Но предупреждение дает мне undefined в сообщении:

Error trying to add a row - undefined

Кто-нибудь знает, где ячто-то не так с частью оповещения?

1 Ответ

3 голосов
/ 16 апреля 2019

data на самом деле строка, '{"error":"Error: Table 'db.tutorials' doesn't exist"}'. Вы можете преобразовать его в объект, используя JSON.parse:

data = JSON.parse(data);

или, альтернативно, укажите

dataType : "json"

на ваш вызов ajax, и он будет автоматически преобразован при получении (см. руководство ).

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