Wordpress Ajax返回0

时间:2014-04-23 09:46:12

标签: ajax wordpress

我希望你能提供帮助。 functions.php中的以下代码返回0。

function removeItems(){
echo "hello";
die();
}

add_action('wp_ajax_removeItem', 'removeItems');
add_action('wp_ajax_nopriv_removeItem', 'removeItems'); 

function remove_item(){
  echo '<script type="text/javascript">
    jQuery(document).ready(function(){
        jQuery("body").delegate(".remove_one","click",function(){
            var cart_key = jQuery(this).data("cart_key");
            jQuery.ajax({
                type:"POST",
                url: "/wp-admin/admin-ajax.php",
                data: {action: "removeItem"},
                success:function(data){
                    alert(data);
                }
            });
        });
    });
</script>';
}

add_action('wp_head', 'remove_item');

我能找到的常见错误不包括:

add_action('wp_ajax_nopriv_removeItem', 'removeItems'); 

...但我已经补充说。

action=removeItem

正在控制台中添加。

非常感谢任何帮助。 标记

1 个答案:

答案 0 :(得分:1)

如果未指定操作,admin-ajax.php将退出,并在此过程中返回0。这意味着你的前端有一个Wordpress无法识别的动作。 Wordpress无法找到您的wp_ajax_xxx操作。您可能已经指定了此操作,但请记住加载此文件,以便调用它。

摘要:

  1. 在您的插件文件/主题中,请记得加载
  2. 所在的文件
    add_action('wp_ajax_removeItems', 'removeItems');  
    function removeItems() {     
            ...;     
           echo json_encode($array);    
    }
    
    1. 从前端打电话给他们
    2. (function($){  
      var  ret     = true,  
        ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>',  
        data    = {  
         'action': 'removeItems',  
        };   
      
      $.post(ajaxurl, data, function(response) {  
          console.log(response);  
        });  
      })(jQuery);