Wordpress中的AJAX调用返回0

时间:2016-08-08 17:47:13

标签: jquery ajax wordpress xmlhttprequest

我正在尝试使用ajax从我的数据库中检索一些信息。

我创建了一个插件,将我的javascript插入到我页面的标题中。我打电话的代码如下:

(function($){
$('#txtFname').on('input', function(){
var postData = $('#txtFname').val();
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest;
}
else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("frmResult").innerHTML = xmlhttp.responseText;
}    
};
var data= "action=myAjaxFunction="+postData;
xmlhttp.open("POST", "http://www.my-site.com/wp-admin/admin-ajax.php", true);
xmlhttp.send(data);
});
})(jQuery);

在我的主题我的functions.php文件中,我正在使用我添加了以下内容(我只是想确保它调用此函数。我已经有工作代码从数据库中获取数据):

add_action( 'wp_ajax_nopriv_myAjaxFunction', 'myAjaxFunction' );  
add_action( 'wp_ajax_myAjaxFunction', 'myAjaxFunction' );    
function myAjaxFunction(){ 
echo "This function is being called";
}

当我对txtFname输入进行更改时,输出为0;

我查看了很多以前的问题,不确定我是否遗漏了某些内容,或者只是在我的代码中犯了错误。任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:0)

这是错误的:

var data= "action=myAjaxFunction="+postData;
                                ^--

那会产生

action=myAjaxFunction=foo

PHP将解析为$_POST['action'] = 'myAjaxFunction=foo'