1

我正在使用 jQuery 将一个相当简单的对象编译发送到一个 php 脚本.ajax。我想从 PHP 脚本中的每个对象中提取一个值。javascript是:

var obj = [{id:1, name:"val1"}, {id:2, name:"val2"},{id:3, name:"val3"}];

$.ajax({
            type: "GET",
            url: "call.php",
            contentType: "application/json",
            data: {type: "stream", q: JSON.stringify(obj)},
            success: function(response){
                        alert(response);
                     }
          });

call.php 文件写成:

if($_GET['type']=='stream'){
    $obj = json_decode($_GET['q']);

    for($i=0;$obj[$i];$i++){
    echo $obj[$i]->{'name'}." ";
    }
}

然而,这返回 0,我根本不知道为什么。

其次,尝试type:"POST"在 javascript 和$_POSTphp 中使用,但完全失败了。

4

2 回答 2

3
 data: {type: "stream", q: JSON.stringify(obj)},

而不是这种用途

 data: {type: "stream", q: obj},
于 2012-06-04T18:33:10.567 回答
0

您缺少dataType: 'json'ajax 选项。contentType选项仅适用于正在发送的数据。

添加dataType后,试试这个:

echo $_GET['q'];

它应该只返回您发送的 json 字符串。如果不需要在控制台中查看请求以解决问题

于 2012-06-04T18:59:05.540 回答