jquery - 在 jquery 中访问 xhr 的 json 响应

标签 jquery ajax json xmlhttprequest

我有一个关于 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/

相关文章:

javascript - 有什么办法可以在 iframe 元素中放置链接吗?

javascript - 通过ajax actionlink传递javascript变量来加载部分 View

jquery - 使用 jQuery .each() 具有动态限制的字符计数器

jQuery - 无法在 Firefox 中的表单提交上调用 ajax

php - 使用单点输入 PHP 时定义 $_POST 变量

c# - 按日期部分分组 (dd.mm.yyyy)

javascript - 如何将 "time"从 Meetup API 转换为可识别的格式?

json - 将嵌套的 JSON 负载映射到 Elixir 中的结构

jquery - 获取 jQuery 的 SharePoint 表单字段的 ID

javascript - 我如何判断 ajax 是否正常工作?