我有一个数据类型设置为“json”的 $.ajax() 请求。服务器正在返回带有正确 mime 类型“application/json”的 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, textStatus, jqXHR, key);
},
function(jqXHR, textStatus, errorThrown) {
this.error(jqXHR, textStatus, errorThrown);
}
);
console.log(jqXHRObject.getResponseHeader("content-type")); // application/json
console.log(typeof jqXHRObject.responseText); // string
所以我必须做一个$.parseJSON(jqXHRObject.responseText)
得到一个实际的对象。这似乎没有必要,因为 $.ajax() 应该根据文档自动转换 responseText。谢谢!