为什么我的php后端没有json post的数据?

时间:2016-08-13 02:36:43

标签: php jquery json ajax post

我有json数组:

[Object { path="/usr/share/htvcenter/storage/Windows",  imgid="14698227485587"}, Object { path="/usr/share/htvcenter/storage/WindowsServer",  imgid="14701636866762"}]

我用ajax发送这个数组:

$.ajax({
          type: 'POST',
          url: urlstring,
          contentType: "application/json",
          data: JSON.stringify(parameters),

          success: function(data){
                $('.lead').hide();
                blackalert('Removed successfully!');
          }
    });

我在firebug中看到这个帖子发送: enter image description here

但是服务器答案是空的$ _POST: enter image description here

服务器的代码是:

if (isset($_GET['treeaction']) && $_GET['treeaction'] == 'remove') {
        echo 'here';
        var_dump($_POST); die();
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

当您发送POST请求时,您不需要将内容类型设置为application/json。通过这样做,这不再是常规POST请求(具有表单值),而是有效负载请求。

要从服务器上的有效负载请求中获取数据,您可以使用:

$content = file_get_contents("php://input");
var_dump(json_decode($content)); // In case the content is a json string.

如果您想发送常规请求,可以使用:

$.ajax({
      type: 'POST',
      ....
      data: {'data' : parameters},
      success: function(data){
        alert(data);
      }
});

没有contentType且没有JSON.stringify 这样您就可以使用$_POST['data']

获取数据