dataType が「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)
、実際のオブジェクトを取得するには a を実行する必要があります。$.ajax() は docs に従って responseText を自動的に変換する必要があるため、これは不要のようです。ありがとう!