В моей функции jQuery ajax выводятся данные, возвращаемые из PHP-скрипта следующим образом:
jQuery(this).html(data);
Функция PHP, которая возвращает данные, содержит:
echo 'Please do this again.';
return;
По какой-то причине он выводится как:
Пожалуйста, сделайте это снова.
Таким образом, он добавляет 0
в конце. Почему это происходит и что я могу сделать, чтобы исправить это?
Вы должны die
внутри вашего обработчика действий ajax следующим образом:
echo 'Please do this again.';
// Don't return, die!
// return;
die;
Ваш код работает точно так, как ожидалось. Проблема в том, что вы используете WordPress и не прекратили выполнение внутри вашей функции обработчика действий.
WordPress обрабатывает вызовы ajax через wp-admin/admin-ajax.php
, а последние строки выдают вывод 0
:
// Default status
die( '0' );
Внутри вашей функции обработчика действий вы должны вызвать die
yourself, чтобы гарантировать, что конец этого файла не будет достигнут, а 0
не будет добавлен к вашему ответу.
Быстрый ответ (я расскажу подробнее):
С return;
вы производите дополнительный вывод, который получает значение 0
.
Истребитель удаляет это return;
или заменить его exit;
чтобы остановить выполнение php.
Другая возможность - return 'Please do this again.';
если вы находитесь вне функций.
console.log(data);