我的AJAX操作未命中

时间:2016-12-06 作者:Amir

我的插件页面中有此操作。

add_action ( \'init\', \'myStartSession\', 1 );
function join_action() {
    $a = 1;
    include "includes/join.php";
}
add_action ( \'admin_post_nopriv_join\', \'join_action\' );
add_action ( \'admin_post_join\', \'join_action\' );
我从angularjs应用程序中调用它,如下所示:

$scope.join = function() {
        $scope.formData.action = "join";
        $http(
        {
            method : \'POST\',
            url : \'<?php echo MEMBERSHIP_APP; ?>\',
            data : jQuery.param($scope.formData), // pass in data as strings
            headers : {
                \'Content-Type\' : \'application/x-www-form-urlencoded\'
            }
        })
        .success(
            function(data) {
                console.log(data);
                if (!data.success) {
                    // if not successful, bind errors to error variables

                } else {
                    // if successful, bind success message to message
                    $scope.message = data.message;
                }
            });
        };
其中MEMBERSHIP\\u APP指向wp admin/admin ajax。php

请你看看我做错了什么。我以前多次使用过这个结构。

2 个回复
SO网友:Amiracle

好的,我看到我的错误了admin_post 而不是wp_ajax 所以应该是这样的:

add_action ( \'wp_ajax_nopriv_join\', \'join_action\' );
add_action ( \'wp_ajax_join\', \'join_action\' );

SO网友:Den Pat

在javascript代码中,在动作名称后添加\\u动作。例如:

$scope.formData.action = "join_action";
和重命名函数,从中删除操作,如:

function join() {
    $a = 1;
    include "includes/join.php";
}
如果您想要工作示例,请参见:

add_action(\'wp_ajax_your_function_name_action\',\'your_function_name_ajax\')
add_action(\'wp_ajax_nopriv_your_function_name_action\',\'your_function_name_ajax\')

if (!function_exists(\'somename\')) {
function somename(){
echo $_POST[\'eidvar\'];
exit();
}
}



var data = {
action: \'your_function_name_action\',
eidvar: "somevalue",
}

$.post(MEMBERSHIP_APP, data).done(function(response) {
if(response.indexOf("no") > -1) {
//no result etc
} else {
console.log(response)}
});

相关推荐

尝试在WordPress中实现AJAX注释,遇到WP错误

我试图在WordPress中为我的评论实现Ajax,使用this tutorial. 但我在将教程中的代码集成到自己的预构建主题时遇到了问题。问题是,我要么得到一个WP错误“检测到重复注释;看来你已经说过了!”或标准500错误。以下是我得到的:下面是我对ajax的评论。js文件如下所示: * Let\'s begin with validation functions */ jQuery.extend(jQuery.fn, { /* * check i