在使用$ .ajax发送数据后,如何从$ _POST中获取数据

时间:2013-09-07 13:52:36

标签: php jquery ajax post

我正在使用ajax发送数据:

$('article.work a').click(function(e){
    var h = $(this).attr('href');

    e.preventDefault();

    $.ajax({
      type: "POST",
      url: h,
      data: workItems,
      success: function(data){
        console.log('success');
        window.location = h;
      },
      error: function(){
        console.log('eror');                    
      }             
    });
});

它发送确定并在检查firebug post标签后看起来像:

Post value

所以我相信它正在发送正确的数据。但是当我尝试通过php从$ _POST中检索它时,我做了

<?php 
print_r(json_decode($_POST["json"])); 
?>;

什么都没有打印出来。

我做错了什么? 为什么$ _POST不会识别我的数据,即使它被发送了?

1 个答案:

答案 0 :(得分:1)

尝试:

var_dump($_POST['json'], true)。这意味着将产生关联数组,而不是对象。

尝试:

    $.ajax({
        url: "h",
        type: "post",
        data: workItems,
    });

尝试使用var_dump($_POST);或关联数组获取数据:var_dump($_POST['workItems'], true);

我认为在输出JSON结果之前应该正确格式化为UTF8:

$result = mb_convert_encoding($result,'UTF-8','UTF-8'); 
$result = json_decode($result);

在输出JSON代码之前输入上面的代码。