3

我有一个关于XMLHttpRequest对象如何工作的问题。在https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest的属性下,我正在查看“响应”属性。描述说如果我的内容类型是 json,我应该得到一个 JavaScript 对象。但是,在我的代码中,xhr.response属性是undefined.

具体来说,我有一个.ajaxSuccess()在 DOM 元素上设置的回调,它接收参数(event, xhr, settings)xhr.responseText是我的 json 的明文版本,但 xhr.response 是未定义的。有什么方法可以在不调用的情况下从 xhr 获取对象$.parseJson(xhr.responseText)

4

1 回答 1

1

我认为您将该XMLHttpRequest对象与 jQueryjqXHR使用的对象混淆了$.ajaxSuccess(),它应该是前者的超集。

相反,您可以使用$.ajax()'处理程序,如果数据类型是done,它将为您解析 JSON 。例如:json

$.ajax({
  url: url,
  dataType: 'json',
}).done(function (response) {
  // response is a JSON object, previously parsed by jQuery using $.parseJSON
});

另请注意,即使 的文档$.ajaxSuccess()说您获得了一个香草XMLHttpRequest对象,但从jQuery 1.4.1起不再适用。相反,你得到一个对象。jqXHR

于 2012-09-09T03:06:25.993 回答