Как по-разному обрабатывать ответы, отправленные из PHP в AJAX - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь выяснить, как я могу по-разному обрабатывать разные ответы, отправляемые из PHP в AJAX (я использую toastr для удобного отображения сообщений на внешнем интерфейсе).Скажем, кто-то пытался вставить какое-то значение в базу данных, и значение было успешно вставлено, затем я отправил мне сообщение из PHP по

echo "Data inserted";

, и это было обнаружено ответом ajax и обработано

success: function(response) {
 toastr.success(response);
}

Но я хочу, чтобы когда PHP отправлял сообщение что-то вроде

echo "Unable to insert data";

Мой AJAX обрабатывает его как ошибку, и я хочу использовать toastr.danger () вместо toastr.success () .

Как мне справиться с этой ситуацией?

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

В PHP вы можете использовать функцию http_response_code() для отправки кода состояния HTTP 400:

http_response_code(400);
echo "Unable to insert data";

В jQuery используйте обратный вызов error для обработки ответа 400:

error: function(response) {
  toastr.danger(response);
}
0 голосов
/ 01 февраля 2019

Попробуйте отправить это в php

header("HTTP/1.0 403 Forbidden");
exit 'Bad user name / password';

header('HTTP/1.1 500 Internal Server Error');
exit("Something went wrong when we tried to save your comment. Please try again later. Sorry for any inconvenience");

header('HTTP/1.1 400 Bad Request');
exit("This is a message about your invalid fields. Please correct before resubmitting.");
0 голосов
/ 01 февраля 2019

Как сказал Джон Стирлинг в комментарии, проверьте код состояния HTTP (200: ОК, 404: Не найдено, 500: Ошибка сервера ...), statusCode в $ .ajax options.

Или используйте error в $ .ajax options (в отличие от success параметров).

Или (но не на самом деле) проверьте слово в своем ответе с помощью String.indexOf('yourWord')

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