我试图在一个名为session.php
使用jQuery-Ajax-Post-like
$("#up-data").on("click", function(){
var data= {
url : \'www.google.com\',
product : \'Map\'
};
var request = $.ajax({
type: "POST",
url: ajax_set.ajaxurl,
data: data,
cache: false,
crossDomain: true,
beforeSend: function() {
}
});
request.done(function( data) {
console.log(data);
});
request.fail(function( jqXHR, textStatus ) {
console.log( "Request failed: " + textStatus );
});
});
看起来这个帖子在这里很好,因为我没有收到任何错误,而且我得到了
Map www.google.com
在fire bug响应中,以及在控制台中
.done()
无任何错误消息
但是在会话PHP中
$u = $_POST["url"];
$p = $_POST["product"];
echo $u . " " .$p ;
没有返回任何错误消息
你能告诉我我遗漏了什么或做错了什么,以及我如何解决这个问题吗?
最合适的回答,由SO网友:Maciej Palmowski 整理而成
我对你的代码有些怀疑。如果你使用WordPress,你应该使用https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
所以你没有会话。php,但函数:
add_action( \'wp_ajax_foobar\', \'my_ajax_foobar_handler\' );
function my_ajax_foobar_handler() {
$u = $_POST["url"];
$p = $_POST["product"];
echo $u . " " .$p ;
wp_die();
}
简化你的JS
jQuery.post(
my_foobar_client.ajaxurl,
{
\'action\': \'foobar\',
\'url\' : \'www.google.com\',
\'product\' : \'Map\'
},
function(response) {
console.log(response);
}
);