输出PHP,json_encode如下:
{"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);
});
}
});
但是当运行时它显示错误
未捕获的类型错误: 无法使用"in"运算符在...中搜索"36"。
为什么?以及如何解决它?
我认为您拥有的 JSON 数据没有转换为 JSON object
为此,请使用data = JSON.parse(data);
然后尝试each
循环
或
从PHP发送应用程序/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);
});
}
});
或(以菲律宾语为单位)
header("Content-Type:application/json");
$data = array( "data_1" => "Data 1", "data_2" => "Data 2");
echo json_encode($data);