Admin-ajax.php响应为0

时间:2016-08-09 作者:mbricep

我一直在尝试将一些以前可用的ajax移植到我正在帮助开发的WordPress插件。

在前端,我的javascript看起来像

// this is inside a succesfully called JS function
jQuery.ajax({
   action: \'mbp-deleteFrame\',
   url: mbp_Ajax.ajaxurl,
   type:"POST",
   data:{\'deleteFrame\':id},
   success: function(resp){
        console.log(resp);
      }
 });
在我的主插件文件中,我还有

<?php
   function mbp_admin_scriptInsert(){
    wp_register_script(\'mbp_admin_scripts\',
         plugins_url(\'/js/mbp_admin_scripts.js\', __FILE__), array(\'jquery\')  );

    wp_enqueue_script( \'mbp_admin_scripts\');
    wp_localize_script(\'mbp_admin_scripts\', \'mbp_Ajax\', array(
        \'ajaxurl\' => admin_url(\'admin-ajax.php\' ),

           )
     );

}

add_action(\'wp_ajax_mbp-deleteFrame\',\'mbp_deleteFrame_handle\' );
add_action(\'wp_ajax_nopriv_mbp-deleteFrame\',\'mbp_deleteFrame_handle\' );
我的add\\u action命令引用的另一个函数是

function mbp_deleteFrame_handle(){

    echo \' This is a response!\';

die();   
我只是在学习如何使用AJAX管理WP交互,但到目前为止,这是一个毫无结果的过程。

现在,我的理解是,我需要传递admin ajax的url。php到JSwp_localize_script(). 从我所看到的情况来看,我已经做到了这一点,并且它已经通过该行提供给了AJAX调用url: mbp_Ajax.ajaxurl. 那么,我有action: mbp-deleteFrame, 据我所知,这一行应该触发两个add_action() 函数,并调用“mbp\\u deleteFrame\\u handle()”。从那以后,我想我会在回应中得到回音,但现在,我在控制台和Chrome的回应选项卡中都只得到了0。

有谁能再看看这个,告诉我我哪里做不到?

1 个回复
最合适的回答,由SO网友:mmm 整理而成

这个action 必须是HTTP参数,请尝试:

jQuery.ajax({
    url: mbp_Ajax.ajaxurl,
    type:"POST",
    data:{
        deleteFrame: id
        action: \'mbp-deleteFrame\',
    },
    success: function(resp){
        console.log(resp);
    }
});