使用下面的json_encode输出PHP:
{"data_1":"Data 1","data_2":"Data 2"}
在jQuery中我有代码:
$.ajax({
url : 'process.php',
dateType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data) {
$.each(data, function(key, value) {
alert(key+ " " + value);
});
}
});
但是在运行时显示错误
未捕获的TypeError:无法在'中使用'运营商搜索' 36'在....
为什么呢?以及如何解决它?
答案 0 :(得分:2)
我认为您拥有的json数据未转换为json object
使用data = JSON.parse(data);
然后尝试each
循环
或
从php发送application / json标头,例如header("Content-Type:application/json");
。如果发送了正确的json头,那么浏览器将为您进行解析。
所以你的最终代码看起来像
$.ajax({
url : 'process.php',
dateType: 'json',
type: 'POST',
data : {val : data_val},
success: function(data){
data = JSON.parse(data);
$.each(data, function(key, value) {
alert(key+ " " + value);
});
}
});
或(在php中)
header("Content-Type:application/json");
$data = array( "data_1" => "Data 1", "data_2" => "Data 2");
echo json_encode($data);