我对XMLHttpRequest
对象的工作原理有疑问。在https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest中,在属性下我正在查看“响应”属性。描述说如果我的内容类型是json,我应该返回一个JavaScript对象。但是,在我的代码中,xhr.response
属性为undefined
。
具体来说,我在DOM元素上设置了.ajaxSuccess()
回调函数,它接收参数(event, xhr, settings)
。 xhr.responseText
是我的json的纯文本版本,但xhr.response未定义。有没有办法在不调用$.parseJson(xhr.responseText)
的情况下从xhr获取对象?
答案 0 :(得分:1)
我认为你将XMLHttpRequest
对象与jqXHR
使用的jQuery的$.ajaxSuccess()
对象混淆,后者假设是前者的超集。
相反,您可以使用$.ajax()
的{{1}}处理程序,如果数据类型为done
,它将为您解析JSON 。例如:
json
另请注意,即使$.ajaxSuccess()
的文档表明您获得了一个vanilla $.ajax({
url: url,
dataType: 'json',
}).done(function (response) {
// response is a JSON object, previously parsed by jQuery using $.parseJSON
});
对象,已经不再是真的,但是jQuery 1.4.1 即可。相反,您get XMLHttpRequest
个对象。