У меня есть запрос $.ajax() с типом dataType, установленным на "json." Сервер возвращает JSON с правильным типом mime "application/json". И все же responseText в моем объекте jqXHR всегда является строкой. Что я делаю не так? Так ли это должно работать?
Вот как я делаю вызов:
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 в соответствии с документами. Спасибо!