在jquery中访问xhr的json响应

时间:2012-09-09 02:55:01

标签: jquery ajax json xmlhttprequest

我对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获取对象?

1 个答案:

答案 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个对象。