$.ajax({
type: "POST",
url: "bla",
xhrFields: { responseType: "document" },
data: {},
success: function(arg,arg2,request){
console.log(request.responseXML)
}
})
「未定義」と出力されるのはなぜですか? どうすればこれを修正できますか?
JSON が返されることを期待していますか? 試してみるとどうなりますか:
$.ajax({
type: "POST",
url: "bla",
dataType: 'xml',
}).done(function (response) {
console.log(response);
});
jQuery のドキュメントを見ると、次のように概説されています。
jQuery 1.5 の時点で $.ajax() によって返される jQuery XMLHttpRequest (jqXHR) オブジェクトは、ブラウザーのネイティブ XMLHttpRequest オブジェクトのスーパーセットです。たとえば、responseText プロパティと responseXML プロパティ、および getResponseHeader() メソッドが含まれています。
したがって、応答変数には必要なものが含まれています。その構造を確認するにはconsole.log()
、開発者ツール (Chrome) または Firebug (Firefox) の [コンソール] タブに移動します。