Kecuali saya mengakhiri fungsi pemrosesan Ajax oleh exit()
atau die()
, fungsi Ajax menerima output yang diinginkan dan benar tetapi diikuti oleh 0
.
Adakah yang tahu mengapa hal itu terjadi?
Apakah itu dimaksudkan seperti itu atau bisa diperbaiki?
add_action('wp_ajax_get_homepage', 'get_homepage');
add_action('wp_ajax_nopriv_get_homepage', 'get_homepage');
function get_homepage(){
echo "get_homepage ->";
exit();
}
Saya sudah membaca di AJAX dalam Plugin , tetapi mengapa itu perlu?
Jawaban:
Respons default dari
admin-ajax.php
adalah,die( '0' );
... dengan menambahkan milik Anda
wp_die()
atauexit()
ataudie()
setelah mengembalikan konten yang Anda inginkan, juga mencegah respons default untukadmin-ajax.php
dikembalikan.Secara umum ini juga berarti bahwa panggilan ajax Anda telah berhasil.
Pada akhirnya, untuk menjawab pertanyaan Anda, itu dimaksudkan untuk bekerja dengan cara ini. Apa yang Anda lakukan dengan keluar setelah mengembalikan konten Anda adalah hal yang benar untuk dilakukan.
sumber
die()
atauexit()
setelah Anda menggemakan konten / data Anda. Dalamsuccess/complete
fungsi panggilan balik metode ajax Anda, Anda kemudian dapat memanipulasi data dan menggunakannya untuk mengisi DOM. Anda juga dapat melakukan pengecekan kesalahan tambahan untuk memvalidasi integritas data. Anda juga dapat melakukan pengecekan kesalahan pada fungsi panggilan balik PHP Anda sebelum mengeluarkan. Pada dasarnya keluar setelah mengembalikan respons Anda akan memastikan Anda tidak0
cocok dengannya. Ngomong-ngomong hanya karena Anda menerima0
respons tidak berarti panggilan ajax Anda 100% berhasil. Namun mudah untuk mengetahui kapan Anda memeriksa output Anda.wp_die()
ditambahkan dalam 2.0.4wp_die
ke plugin lain atau kode tema yang dapat menghubungkan ke proses tersebut, kemudian, menggunakandie
atauexit
ok. Jika Anda bermaksud merilis kode Anda sebagai OSS atau yang lainnya, di mana kode Anda perlu bermain baik dengan orang lain, makawp_die
akan lebih disukai, disepakati.