WordPress没有在Custom AJAX上设置PHP$_POST

时间:2018-06-15 作者:Mona Coder

我试图在一个名为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() 无任何错误消息

enter image description here

但是在会话PHP中

$u = $_POST["url"];
$p = $_POST["product"];
echo $u . "  " .$p ;
没有返回任何错误消息

enter image description here

你能告诉我我遗漏了什么或做错了什么,以及我如何解决这个问题吗?

1 个回复
最合适的回答,由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);
    }
);

结束

相关推荐

如何在AJAX函数中从WordPress数据库中获取用户ID?

我有一个ajax函数,可以通过ajax将用户帖子的视图类型从列表模式切换到网格模式,但问题是,当调用wp查询时,它无法获取正在查看的用户配置文件的id。当我手动输入id号时,它会起作用,但当我尝试使用$user->id或$user\\u id或$user[\'id]时,它不会起作用。有人能帮我弄清楚吗?这是我当前的php函数,它是在我的函数中编写的。php文件:function profile_view(){ $args = array( \'post_ty