不幸的是,另一个与 json 相关的问题......
考虑以下 json
[{"details":{
"forename":"Barack",
"surname":"Obama",
"company":"government",
"email":"bigcheese@whitehouse.com",
"files": [{
"title":"file1","url":"somefile.pdf"
},
{
"title":"file2",
"url":"somefile.pdf"
}]
}
}]
我需要将此数据发送到服务器上的 php 脚本,然后在服务器上与其交互,但不知道如何操作。
我通过 jquery.ajax 发送它,它发送得很好(没有错误消息),代码如下。 (newJson 是我按照上面创建的 json 对象)
$.ajax({
type: "POST",
url: "test.php",
dataType: 'json',
data: newJson,
success: function(msg)
{
alert(msg);
},
error: function(jqXHR, textStatus)
{
alert(textStatus);
}
});
所以到目前为止,在我的 php 脚本中,我只想将内容作为字符串回显,并显示在成功警报中
<?php
header('Access-Control-Allow-Origin: *');
echo $_POST;
?>
但这只会给我一个解析错误..那么你们有什么想法吗?
最佳答案
您必须有一个键/值对才能使用 $_POST[key]
在 php 中接收数据。发送您拥有的数组本身并不是最好的方法,因为您已经拥有对象的结构
我会打开外部数组,因为您只在其中发送一个对象
然后对象看起来像
{"details":{
"forename":"Barack",
"surname":"Obama",
"company":"government",
"email":"bigcheese@whitehouse.com",
"files": [{
"title":"file1","url":"somefile.pdf"
},
{
"title":"file2",
"url":"somefile.pdf"
}]
}
}
在 php 中将通过 $_POST['details']
接收。不要转换为 JSON,只需将整个对象传递给 $.ajax data
属性。
如果您从ajax收到parserror
,则在接收端,听起来像是从php收到500错误,或者没有按照您的dataType
的预期发送回json
关于javascript - 发送json数据到服务器jquery.ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886553/