阿贾克斯回来了,但动作是“永远不会”.调用

Ajax comes back as success but the action is "never" called

本文关键字:永远 永远不会 调用 回来了 阿贾克斯      更新时间:2023-09-26

我正在帮助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代码。任何指针可能会阻止这种工作将非常感激。感谢堆栈溢出!div =)

这是如何添加ajax操作到您的plugin.php或functions.php

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();
}