我正在编写一个带有ajax请求的插件,我遇到了一个奇怪的问题。它最初几次工作正常,但突然之间,数据变成空的或空的。
代码如下:
/* in functions.php */
add_action( \'wp_ajax_rs-MYajaxAction\', \'wpw_display_js_vars\');
add_action( \'wp_ajax_nopriv_rs-MYajaxAction\', \'wpw_display_js_vars\');
function wpw_display_js_vars() {
var_dump($_POST[\'uid\']);
//outputs null
die();
}
以及:
/* p_name, user_meta.current_user_id, clicked_post and ajaxurl
* are all global defined in another part of the script
*/
$(\'.walkthrough-list\').find(\'a\').each(function() {
$(this).click(function() {
$.post(
ajaxurl,
{
action: "rs-MYajaxAction",
p: p_name,
uid : user_meta.current_user_id,
tut_name : clicked_post
},
function(resp) {
console.log(resp);
});// end $.post
return false;
});
<支持>
As a jsfiddle数据发布到时“丢失”有什么原因吗admin-ajax.php
?
最合适的回答,由SO网友:helgatheviking 整理而成
这个stackoverflow答案是基本ajax发布的一个很好的例子。
https://stackoverflow.com/questions/5004233/jquery-ajax-post-example
我会尝试调整您的代码,以便您要发布的信息位于
data
参数jQuery并不是我最擅长的,但我的印象是$\\u POST数据就是通过这个参数得到的。
$(\'.walkthrough-list\').find(\'a\').each(function() {
$(this).click(function() {
data = \'p=\'+p_name+&uid=\'+user_meta.current_user_id+\'&tut_name=\'+clicked_post;
$.post(
ajaxurl,
{
action: "rs-MYajaxAction",
data: data
},
function(resp) {
console.log(resp);
});// end $.post
return false;
});
当然,可能有更好的方法来序列化数据。