undefined: json
时间: 2023-08-22 11:04:44 浏览: 147
JSON.stringify()报错:JSON未定义
在使用AJAX时,有时会遇到返回的JSON数据无法正确取值,提示undefined的问题。这可能是因为在不同版本的jQuery中对JSON数据格式进行了严格限制。在jQuery 1.4中,要求对字符串都使用""限定,而在之前的版本中可能不需要。所以,如果你的代码是基于jQuery 1.3编写的,在升级到jQuery 1.4后,可能需要修改JSON数据的格式。例如,原先的数据格式为{ isOk:true, msg:'传输成功' },在jQuery 1.4中需要修改为{ "isOk":true, "msg":"传输成功" }。这样修改后,就可以正确取值了。另外,还可以在ajax请求中指定dataType为"json",以确保正确解析返回的JSON数据。例如:
```javascript
var dat = {id:"123456", name:"over"};
$.ajax({
type: "POST",
url: "/Test.ashx",
data: dat,
dataType: "json",
success: function(data) {
if (data.isOk == true) {
alert(data.msg);
} else {
alert(data.msg);
}
},
error: function() {
alert("信息提交失败");
}
});
```
如果你使用的是$.post方法,也需要在最后添加一个数据类型"json",例如:
```javascript
$.post("/Test.ashx", dat, function(data) {
alert(data.isOk);
}, "json");
```
另外,如果后端返回的JSON数据有时是字符串,有时是对象,你可以使用JSON.parse方法将字符串转换为对象。例如:
```javascript
this.res = JSON.parse(res.data);
```
这样就可以正确取得后端返回的JSON数据了。希望这些解决方法对你有帮助。
#### 引用[.reference_title]
- *1* [Jquery中ajax传输json数据显示undefined错误](https://blog.csdn.net/jenny8080/article/details/84880406)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [uni-app从后端获取JSON数据,使用时显示undefined](https://blog.csdn.net/qq_41884068/article/details/105820814)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文