javascript - 如何访问发送到 php 脚本的 jQuery.ajax() 返回数据

标签 javascript php jquery ajax

我正在使用以下 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/

相关文章:

javascript - 使用 jQuery.each 以相反的顺序检索键、值

javascript - 无法从 URL 更改的下拉列表中获取值

javascript - jqPlot : Rotate xaxis date labels

javascript - 在 js 变量中包含 <script type ="text/javascript">.....</script>

javascript - 从文件中提取数据

PHP 远程流式传输不适用于 iOS(Safari、Chrome)

php - 让 2 个模块在 magento 中使用相同的名称

javascript - 如何在 Html 和 KnockOut JS 下拉列表中动态设置索引?

php - 需要用户体验数据库和用户级别的帮助

javascript - 使用 ajax 将数据字符串传递给 Controller ​​方法