使用 jquery ajax 将 JSON 发送到 PHP


sending JSON to PHP using jquery ajax

我正在使用jQuery的.ajax将一个相当简单的对象编译发送到php脚本。我想从 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);
                     }
          });

调用.php文件写为:

if($_GET['type']=='stream'){
    $obj = json_decode($_GET['q']);
    for($i=0;$obj[$i];$i++){
    echo $obj[$i]->{'name'}." ";
    }
}

但是这返回 0,我根本无法弄清楚原因。

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

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

而不是这种使用

 data: {type: "stream", q: obj},

ajax 选项中缺少dataType: 'json'contentType选项仅用于发送数据。

添加数据类型后,请尝试以下操作:

echo $_GET['q'];

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