我有一个jquery ajax函数,可以正常运行并检索数据。我所经历的是,我似乎无法使用我认为的传统方法从返回的数据中提取单个json数据元素。
$("a[name$='-test']").click(function() {
var rpc_url = '/history/get_test/' + $(this).attr('id');
$.ajax({
url : rpc_url,
type : 'post',
contentType : "application/json; charset=utf-8",
datatype : 'json',
success : function(data) {
console.log(data.id);
}
}).done(function(data) {
console.log(data.title);
});
});
}
原始结果数据格式如下;
[{"id":"1","title":"Test title"}]
然后我修改了我的远程代码,只是将数据返回到数组上下文之外;
{"id":"1","title":"Test title"}
正如您在我的代码中看到的那样,我尝试在成功事件和完成事件中访问数据。 Fiddler显示格式良好的json作为返回的数据。虽然两者都在data.id
&的控制台输出中继续未定义。 data.title
。
那么,我错过了一些明显的东西吗?
感谢。
答案 0 :(得分:3)
尝试dataType:' json'而不是数据类型:' json' ^^
答案 1 :(得分:0)
首先尝试解析数据:
JSON.parse(data);
答案 2 :(得分:0)
datatype
已更改为dataType
如果不评估为JSON对象,则需要手动转换为Object
,因此您应该执行以下操作:
console.log(JSON.parse(data)["title"])