我正在尝试解析一个字符串的响应,该字符串是一个 json 字符串。在我的网络应用程序的另一个页面中,以下代码工作正常。但它不适用于我正在使用的当前页面。代码如下:
$.ajax({
type: 'POST',
url: 'http://mywebapp.com/sendnames',
data: {},
success: function(result) {
alert('result: '+result);
var obj = jQuery.parseJSON(result);
alert('obj: '+obj);
// doing rest of stuff
}
});
第一个警报出现并显示正确的结果。结果是:
[
"Richard",
"Eric",
"John"
]
但是第二个警报没有出现。 我检查了一下,它是一个有效的 json。为什么我不能用 jQuery.parseJSON() 解析这个 json。提前致谢。
最佳答案
尝试添加返回类型:dataType : json
$.ajax({
type: 'POST',
url: 'http://mywebapp.com/sendnames',
data: {},
dataType:'json',
success: function(result) {
console.log('result: '+result);
// doing rest of stuff
}
});
“json”:
将响应评估为 JSON 并返回 JavaScript 对象。在 jQuery 1.4 中,JSON 数据以严格的方式解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。 (有关正确 JSON 格式的更多信息,请参阅 json.org。)
“jsonp”:使用 JSONP 加载 JSON block 。添加额外的“?callback=?”添加到 URL 末尾以指定回调。通过将查询字符串参数“_=[TIMESTAMP]”附加到 URL 来禁用缓存,除非缓存选项设置为 true。
http://api.jquery.com/jQuery.ajax/
关于javascript - 为什么我无法使用 jQuery.parseJSON(json) 解析 json 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12211421/