我有一个关于 XMLHttpRequest
对象如何工作的问题。在 https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest ,在属性下我正在查看“响应”属性。描述说如果我的内容类型是 json,我应该返回一个 JavaScript 对象。但是,在我的代码中,xhr.response
属性是未定义
。
具体来说,我有一个在 DOM 元素上设置的 .ajaxSuccess()
回调,它接收参数 (event, xhr, settings)
。 xhr.responseText
是我的 json 的纯文本版本,但 xhr.response 未定义。有什么方法可以在不调用 $.parseJson(xhr.responseText)
的情况下从 xhr 获取对象吗?
最佳答案
我认为您将 XMLHttpRequest
对象与 $.ajaxSuccess()
使用的 jQuery 的 jqXHR
对象混淆了,这是 成为前者的超集。
相反,您可以使用 $.ajax()
的 done
处理程序,它会为您解析 JSON if 数据类型是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 开始,这不再是事实。相反,你get一个jqXHR
对象。
关于jquery - 在 jquery 中访问 xhr 的 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12336165/