can';t在javascript中检索json值
我从get返回了以下消息:can';t在javascript中检索json值,javascript,jquery,json,Javascript,Jquery,Json,我从get返回了以下消息: {"status":"success"} 我的代码如下所示: $.get(url, function(result) { console.log(result) console.log(result['status']) console.log(result.status) return false; }); 这将打印以下内容:
{"status":"success"}
我的代码如下所示:
$.get(url, function(result) {
console.log(result)
console.log(result['status'])
console.log(result.status)
return false;
});
这将打印以下内容:
{"status":"success"}
undefined
undefined
我做错了什么?您的JSON可能没有使用正确的HTTP头来标识它为JSON(您可以在浏览器开发工具的“网络”选项卡中检查头),它可能没有被解析。试一试
console.log(JSON.parse(result)['status'])
或者将数据类型设置为“json”
如果您管理服务器,您应该修复头。大概是:您使用错误的内容类型
头提供JSON,因此jQuery没有通过JSON解析器传递它
确保URL在标题中返回内容类型:application/json如果您的控制台.log
显示“{”状态“:“success”}”
,则表示您的json未被解析。您需要告诉jQuery为您这样做:
$.get(url, function(result) {
console.log(result);
console.log(result['status']);
console.log(result.status);
}, 'json');
或者,更好的是:
$.getJSON(url, function(result) {
console.log(result);
console.log(result['status']);
console.log(result.status);
});
您必须指定希望接收JSON数据。它是jQuery.get
函数中的另一个参数
$.get(url, function(result) {
console.log(result)
console.log(result['status'])
console.log(result.status)
return false;
}, 'json'); // <---- HERE
$.get(url,函数(结果){
console.log(结果)
console.log(结果['status'])
console.log(result.status)
返回false;
}“json”)//