我有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!');
}
});
服务器的代码是:
if (isset($_GET['treeaction']) && $_GET['treeaction'] == 'remove') {
echo 'here';
var_dump($_POST); die();
}
我做错了什么?
答案 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']