我有一个$ .ajax()请求,dataType设置为“json”。服务器返回带有“application / json”的正确MIME类型的JSON。然而在我的jqXHR对象的responseText总是一个字符串。我究竟做错了什么?这是它应该如何工作?
这是我打电话的方式:
var options = {
dataType:'json',type: 'GET',url: "http://example.com/api/"
};
var key = "PassToCallback";
var jqXHRObject = $.ajax(options).then(
function(data,textStatus,jqXHR,key) {
this.success(data,key);
},function(jqXHR,errorThrown) {
this.error(jqXHR,errorThrown);
}
);
console.log(jqXHRObject.getResponseHeader("content-type")); // application/json
console.log(typeof jqXHRObject.responseText); // string
所以我必须做一个$ .parseJSON(jqXHRObject.responseText)来获取一个实际的对象。这似乎不必要,因为$ .ajax()应该根据文档自动转换responseText。谢谢!