我从get:
返回了以下消息{"status":"success"}
我的代码如下:
$.get(url, function(result) {
console.log(result)
console.log(result['status'])
console.log(result.status)
return false;
});
这将打印以下内容:
{"status":"success"}
undefined
undefined
我做错了什么?
答案 0 :(得分:1)
如果您的console.log
显示"{"status":"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);
});
答案 1 :(得分:1)
您必须指定您希望接收JSON数据。它是jQuery.get
函数
$.get(url, function(result) {
console.log(result)
console.log(result['status'])
console.log(result.status)
return false;
}, 'json'); // <---- HERE
如果没有,您的result
将被视为字符串。
答案 2 :(得分:0)
您的JSON可能没有正确的HTTP标头,并将其标识为JSON(您可以在浏览器的开发工具的“网络”选项卡中查看标头),它可能未被解析。尝试
console.log(JSON.parse(result)['status'])
或将datatype
设置为"json"
。
如果您管理服务器,则应修复标头。
答案 3 :(得分:0)
据推测:您使用错误的Content-Type
标头为JSON提供服务,因此jQuery不会通过JSON解析器传递它。
确保网址在标题中返回Content-Type: application/json
。