4
$.ajax({
   type: "POST",
   url: "bla",
   xhrFields: { responseType: "document" },
   data: {},
   success: function(arg,arg2,request){
      console.log(request.responseXML)
   }
})

为什么打印“未定义”?我将如何解决这个问题?

4

1 回答 1

4

您期待 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() 方法。

因此,响应变量包含您需要的内容。要查看其结构,请执行 aconsole.log()并转到开发人员工具 (Chrome) 或 Firebug (Firefox) 中的“控制台”选项卡。

于 2013-01-19T17:26:48.967 回答