A menos que eu finalize a função de processamento do Ajax por exit()
ou die()
, a função Ajax recebe a saída desejada e correta, mas seguindo por 0
.
Alguma idéia de por que isso está acontecendo?
Isso é para ser assim ou pode ser corrigido?
add_action('wp_ajax_get_homepage', 'get_homepage');
add_action('wp_ajax_nopriv_get_homepage', 'get_homepage');
function get_homepage(){
echo "get_homepage ->";
exit();
}
Eu li no AJAX em Plugins , mas por que isso é necessário?
plugin-development
functions
ajax
Radek
fonte
fonte
Respostas:
A resposta padrão de
admin-ajax.php
é,die( '0' );
... adicionando seu próprio
wp_die()
ouexit()
oudie()
depois de voltar suas impede que o conteúdo desejado a resposta padrão deadmin-ajax.php
que estão sendo devolvidos também.Geralmente, também significa que sua chamada ajax foi bem-sucedida.
Por fim, para responder à sua pergunta, é para funcionar dessa maneira. O que você está fazendo saindo após retornar o conteúdo é a coisa certa a fazer.
fonte
die()
ouexit()
depois de ecoar seu conteúdo / dados. Nasuccess/complete
função de retorno de chamada do seu método ajax, você pode manipular os dados e usá-los para preencher o DOM. Você também pode fazer qualquer verificação de erro adicional para validar a integridade dos dados. Você também pode fazer a verificação de erros na função de retorno de chamada do PHP antes da saída. A saída essencial após o retorno de sua resposta garantirá que você também não se dê0
bem. A propósito, apenas porque você recebe uma0
resposta, não significa que sua chamada ajax tenha 100% de êxito. No entanto, é fácil saber quando você inspeciona sua saída.wp_die()
adicionado em 2.0.4wp_die
a outros plug-ins ou códigos de temas que possam se conectar ao processo, usandodie
ouexit
está ok. Se você pretende liberar seu código como OSS ou não, onde seu código precisa ser agradável com os outros,wp_die
seria mais preferível, concordou.