在调试js页面的时候,忽然出现的问题
主要出错的语句是:
$.ajax({
url: url,
data:{"appId":appData.appId},
success: function(json) {
json=JSON.parse(json);
....
}
});
在解析前台传回来的数据 json时,由于json本身已经是一个Object对象,所以使用JSON.parse()语句进行数据格式转换时发生错误。
最快捷的解决方案是,不进行数据格式转换,也就是删掉
json=JSON.parse(json);
语句即可。
但是后续有出现了一个坑爹的问题,另外一个jsp页面同样调用了这一段语句,调试的时候发现,这里的json对象又要求进行解析了?!!
找了很久没有发现为啥会出现两个页面调用同一个方法,一个接收到的是对象,另外一个接收到的是字符串,采取了一个投机取巧的这种解决方案:
先判断返回的数据的类型,在根据它是否是字符串,决定是否需要进行格式转换。修改后的语句如下:
$.ajax({
url: url,
data:{"appId":appData.appId},
success: function(json) {
if(typeof json=='string'){
json=JSON.parse(json);
}
....
}
});