JS добавляет ноль в конце

-2

В моей функции jQuery ajax выводятся данные, возвращаемые из PHP-скрипта следующим образом:

jQuery(this).html(data);

Функция PHP, которая возвращает данные, содержит:

echo 'Please do this again.';
return;

По какой-то причине он выводится как:

Пожалуйста, сделайте это снова.

Таким образом, он добавляет 0 в конце. Почему это происходит и что я могу сделать, чтобы исправить это?

  • 0
    Не могли бы вы обновить вопрос с результатом console.log(data);
  • 0
    Хорошо, что выводится, когда вы открываете файл php напрямую? Показать соответствующие коды php
Показать ещё 14 комментариев

2 ответа

1
Лучший ответ

ТЛ; др

Вы должны 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 не будет добавлен к вашему ответу.

2

Быстрый ответ (я расскажу подробнее):

С return; вы производите дополнительный вывод, который получает значение 0.

Истребитель удаляет это return; или заменить его exit; чтобы остановить выполнение php.

Другая возможность - return 'Please do this again.'; если вы находитесь вне функций.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню