Ajax回归成功,但行动“从未”被称为

时间:2014-08-17 10:24:43

标签: javascript php ajax wordpress plugins

我正在帮助构建Wordpress上的插件,并且有点卡在应该是一个非常基本的ajax调用上。我试图获取对象并通过方法'grab_object_from_ajax_call'运行它,但该方法永远不会运行,我很难理解为什么它没有发生。这是我的代码的javascript部分:(我是在调用错误的操作吗?)

var billingFormOld = new BillingForm("example@email", "kyle", "123 address street", "thisCity");
$(window).on("mousedown", function(){
    $.ajax({
    type: 'POST',
    url: ajaxurl,
    data: {
      'action': 'grab_object_from_ajax_call',
      'billingFormOld': billingFormOld
    },
    success: function(response){
      console.log(response);
      console.log("success");
    },
    error: function(xhr){
    console.log(xhr);
    }
  });
});

以下是应该使用的两种方法。添加动作方法是因为我在插件构造时调用它。

function formToBaseAjaxHandler(){
        add_action('wp_ajax_grab_object_from_ajax_call', array($this, 'grab_object_from_ajax_call'));//Start AJAX request Handler
    } 

这是下一步需要运行的方法,但不是:

function grab_object_from_ajax_call(){
    error_log("does this get called"); //never see this in log
    $oldBillingForm = (object) $_REQUEST['billingFormOld'];//grabbing the object 
    $this->enter_object_properties_to_database($oldBillingForm);
    die();
}

我在控制台中收到“0”的响应并显示成功消息,所以我觉得它在我的PHP代码中。任何可能阻止这种工作的指针都将非常感激。谢谢堆栈溢出! =)

1 个答案:

答案 0 :(得分:0)

这是向plugin.php或functions.php

添加ajax操作的方法
add_action( 'wp_ajax_my_action', 'my_action_callback' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );

在你的情况下:

add_action( 'wp_ajax_grab_object_from_ajax_call', 'grab_object_from_ajax_call_callback' );
add_action( 'wp_ajax_nopriv_grab_object_from_ajax_call', 'grab_object_from_ajax_call_callback' );

function grab_object_from_ajax_call_callback(){
  error_log("does this get called"); //never see this in log
  $oldBillingForm = (object) $_REQUEST['billingFormOld'];//grabbing the object 
  $this->enter_object_properties_to_database($oldBillingForm);
  die();
}