wordpress ajax

地球沒有花發表於2018-11-14

wordpress的ajax請求處理有個問題,就是所有成功的請求返回的都是0,就是ajax裡success的那個欄位裡的result總是0,不論我pushtoUUU方法裡怎麼返回,除非readyState不是4或state不是200。我想通過pushToUUU這個方法的返回值來走success還是error是做不到,總是200,所以總是走js的success。

後來我發現在pushToUUU裡直接echo會導致走js的error,那這樣的話,我可以依賴sendMail()這個方法,在裡面做些判斷,比如判斷郵箱格式不合法直接return 666,然後我就走echo,這樣的話就會走到ajax的error裡。

$.ajax({
                type:'post',
                url:$("#push-form").attr("action"),
                data:{'action':'pushToUUU','user_mail':$('#user_mail').val()},
                cache:false,
                dataType:'json',
                success:function(result){
                        console.log(result);
                        console.log("succ");
                },
                error:function(data){
                        console.log(data);
                        console.log("error");
                },
...
function pushToUUU(){ 
                $email = $_POST['user_mail'];               
                $rlt = sendMail($email);
                if ($rlt === 666) {
                        echo "走error";
                }
                wp_die();
}