我正在使用以下 jquery ajax 调用:
$(document).ready(function () {
submitAct();
function submitAct(){
var alldata = [];
alldata.push( {
"pid": 'd2a7d886-6821-3eaa-079f-fbe278c6a16a',
"title": 'Fun with Gophers',
});
$.ajax({
dataType: "jsonp",
type: 'POST',
url: '//[server path]/act',
data: "data=" + JSON.stringify(alldata),
});
}
});
在服务器上,$_POST[data]的结果显示为:
[{"pid":"d2a7d886-6821-3eaa-079f-fbe278c6a16a","title":"Fun with Gophers"}]
我在访问“pid”和“title”的键和相关值时遇到问题。有人可以提供一些见解吗?我已经尝试过类似下面的方法,但没有取得任何成功:
$_POST['title']
$data = json_decode( $_POST['data']);
$data->title
谢谢!
最佳答案
几点建议:
首先,您将数据对象封装在数组中,这是不必要的。现在访问它:
$data = json_decode( $_POST['data']);
$data=$data[0];/* access object in array*/
$data->title;
$.ajax 的默认内容类型是 application/x-www-form-urlencoded; charset=UTF-8
...与发送常规表单完全相同。将数据对象中的每个键视为表单控件的名称
。
不需要JSON.stringify来发送。 jQuery 将为您序列化对象和数组
您可以简单地像这样发送:
var alldata = {
"pid": 'd2a7d886-6821-3eaa-079f-fbe278c6a16a',
"title": 'Fun with Gophers',
};
$.ajax({
dataType: "jsonp",
type: 'POST',
url: '//[server path]/act',
data: alldata
});
然后在 php 中:
$title=$_POST['title'];
关于javascript - 如何访问发送到 php 脚本的 jQuery.ajax() 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19895004/