【发布时间】:2014-01-22 14:40:00
【问题描述】:
我正在开发一个在后端使用 Pylons 的内部网络应用程序,我发现自己需要帮助找出为什么会出现 JSON 解析错误。
服务器上的 Python 例程实际上是这样的:
导入json # 此处导入其他 Pylons # 剪... def validateMachine(自我): retObj = {} retObj['ipv4addr'] = '10.10.15.9' retObj['netmask'] = '255.255.255.0' 返回 json.dumps(retObj)客户端有如下jQuery代码:
$.ajax({ 类型:“发布”, url: "/kickstart/validateMachine", 数据:{theData:theValue}, 数据类型:“json” }) .done(函数(数据){ retObj = $.parseJSON(data); #其他代码在这里 });当我执行 AJAX 查询时,服务器例程正确返回,但对 $.parseJSON() 的调用出错。 Firebug 控制台出错后的屏幕截图:
响应似乎是有效的严格 JSON,所以我的问题有两个:为什么它不能正确解析,我怎样才能让它解析?我的理解是 jQuery 在这种情况下(正确地)尝试使用浏览器的原生 JSON 解析器 - 我可以以某种方式覆盖它并告诉 jQuery 不要使用原生解析器吗?
【问题讨论】:
-
恕我直言,将预期的dataType设置为JSON时,您不需要手动解析,数据已经是JSON。你检查过
typeof data吗? -
当您指定
json时,jQuery 会自动为您解析响应。所以data已经是原生js对象,在js对象上调用parseJSON会报错。