很难说清楚错误在哪里,因为您没有提到add_action(\'wp_ajax_my_function\',\'whatever_callback\');
我想你错过了。但你的问题缺少这方面的信息。
这就是我将如何处理这件事:
在您的功能中。php文件或类似文件:
add_action(wp_ajax_handle_login, \'handle_login_ajax\');
add_action(wp_ajax_nopriv_handle_login, \'handle_login_ajax\');
Make sure 您的句柄登录。php文件是从插件或主题(如函数)在主php文件上声明的。php
require_once plugin_dir_path(__FILE__) . \'handle-login.php\';
您应该在js文件挂钩之后声明nonce变量和ajax url,您将能够在以下时间之后访问它们:
wp_enqueue_script(\'wccajs\',plugin_dir_url( dirname(__FILE__) ) . \'login.js\',array(\'jquery\'),\'1.0\',false);
wp_localize_script(\'wccajs\',\'MyAjax\',array(
\'ajax_url\' => admin_url( \'admin-ajax.php\' ),
\'security\' => wp_create_nonce(\'handle_login\')
) );
在您的句柄登录中。php文件:
function handle_login_ajax(){
check_ajax_referer(\'handle_login\', \'security\');
$return = array();
echo $return;
wp_die(); // You missed this too
}
您的Javascript文件:
function send_stuff_to_server(){
var data = {
\'action\': \'handle_login\', // missed this same as your action hook wp_ajax_{handle_login}
\'security\': MyAjax.security // We can access it this way
}
$.post(MyAjax.ajax_url, data, function (callBack) {
console.log(callBack); // Will return nonce
});
}
希望这有帮助。