Если я не заканчиваю функцию обработки Ajax с помощью exit()
или die()
, функция Ajax получает желаемый и правильный вывод, но после 0
.
Есть идеи, почему это происходит?
Это должно быть так или это можно исправить?
add_action('wp_ajax_get_homepage', 'get_homepage');
add_action('wp_ajax_nopriv_get_homepage', 'get_homepage');
function get_homepage(){
echo "get_homepage ->";
exit();
}
Я читал на AJAX в плагинах , но зачем это нужно?
Ответы:
Ответ по умолчанию от
admin-ajax.php
есть,die( '0' );
... добавив свой собственный
wp_die()
илиexit()
илиdie()
после возврата желаемого контента, вы также не сможете получить ответ по умолчаниюadmin-ajax.php
.Это также обычно означает, что ваш вызов ajax успешно выполнен.
В конечном итоге, чтобы ответить на ваш вопрос, он должен работать именно так. То, что вы делаете, выходя после возвращения вашего контента, это то, что нужно делать.
источник
die()
илиexit()
после того, как вы повторили свой контент / данные. Вsuccess/complete
функции обратного вызова вашего ajax-метода вы можете манипулировать данными и использовать их для заполнения DOM. Вы также можете выполнить любую дополнительную проверку ошибок для проверки целостности данных. Вы также можете выполнить проверку ошибок в вашей функции обратного вызова PHP перед выводом. По сути, выход после возвращения вашего ответа гарантирует, что вы также не ладите0
с ним. Кстати, только то, что вы получили0
ответ, не означает, что ваш вызов ajax был на 100% успешным. Однако это легко сказать, когда вы проверяете свою продукцию.wp_die()
добавленный в 2.0.4wp_die
другим плагинам или коду темы, которые могут подключаться к указанному процессу, тогда, используяdie
илиexit
все в порядке. Если вы намереваетесь выпустить свой код как OSS или как-то иначе, когда ваш код должен хорошо взаимодействовать с другими, тогдаwp_die
было бы более предпочтительным, согласились.