WordPress neden bir Ajax yanıtına 0 (sıfır) ekliyor?


16

Ajax işleme işlevini exit()veya ile sonlandırmazsam die(), Ajax işlevi istenen ve doğru çıktıyı alır, ancak bunu izler 0.

Bunun neden olduğu hakkında bir fikrin var mı?

Bu böyle mi olmalı yoksa düzeltilebilir mi?

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 eklentilerini okudum , ama neden gerekli?


Wordpress oturumunuzu kapatmış olsanız bile (0 eklenmesi) olur mu?
murdaugh

Evet, WordPress'e giriş yapmasam bile.
Radek

Yanıtlar:


31

Tarafından verilen varsayılan yanıt admin-ajax.phpşudur:

die( '0' );

... Kendi ekleyerek wp_die()veya exit()veya die()istediğiniz içerik engeller varsayılan yanıtını döndükten sonra admin-ajax.phpsıra geri gönderilir.

Ayrıca genellikle ajax çağrınızın başarılı olduğu anlamına gelir.

Sonuçta, sorunuzu cevaplamak, bu şekilde çalışmak anlamına geliyordu. İçeriğinizi iade ettikten sonra çıkarak yaptığınız doğru şeydir.


Açıklama için teşekkürler. Yani die () kullanın veya her şeyin yolunda olduğunu bilmek için ajax içinde 0 için kontrol?
Radek

2
İçeriğinizi / verilerinizi yankıladıktan sonra die()veya kullanın exit(). In success/completesizin ajax yönteminin geri arama işlevi, daha sonra verileri değiştirmek ve DOM doldurmak için kullanabilirsiniz. Veri bütünlüğünü doğrulamak için ek hata kontrolü de yapabilirsiniz. Çıktıdan önce PHP geri arama işlevinizde hata denetimi de yapabilirsiniz. Cevabınızı iade ettikten sonra esas olarak çıkmak, onunla da anlaşamamanızı sağlayacaktır 0. Bu arada, bir 0yanıt almanız , ajax çağrınızın% 100 başarılı olduğu anlamına gelmez. Ancak ne zaman çıktı incelemek kolaydır.
Adam

1
Sen kullanarak edilmelidir wp_die()2.0.4 eklenen
thrillcode

wp_dieİşlemi, söz konusu işleme bağlayabilen diğer eklentilere veya tema koduna maruz bırakmanız gerekmediği sürece , dieveya tuşunu kullanın exit. Kodunuzu OSS veya başka bir şekilde serbest bırakmak istiyorsanız, kodunuzun başkalarıyla iyi oynaması gerekiyorsa, daha wp_diefazla tercih edilir, kabul edilir.
Adam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.