首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将AJAX请求从普通的JS重写到JQuery?

如何将AJAX请求从普通的JS重写到JQuery?
EN

Stack Overflow用户
提问于 2017-03-23 11:09:32
回答 2查看 759关注 0票数 2

目前我正在学习JS,并且非常熟悉普通的JS,但是JQuery语法对我来说似乎有点奇怪。因此,我在JS上有以下代码,它运行得很好:

代码语言:javascript
复制
let xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    questions = JSON.parse(this.responseText);
    loadQuestionsData();
  }
};
xhttp.open("GET", "http://localhost:8080/questions", true);
xhttp.send();

在这里,我为本地主机创建新的XMLHttpRequest并获取问题的JSON,当响应就绪时,函数loadQuestionsData()被执行(它将问题列表插入到表中)。我试着用JQuery重写它,但是它不起作用,我也不明白为什么。这是我的第n次尝试:

代码语言:javascript
复制
$(document).on('readystatechange', function() {
  $.ajax({
    url: "http://localhost:8080/questions",
    type: 'GET',
    success: function() {
      questions = JSON.parse(this.responseText);
      loadQuestionsData();
    }
  })
})

我也尝试过以下几种方法,但也不起作用:

代码语言:javascript
复制
$(document).on('readystatechange', function() {
  questions = JSON.parse($.ajax({
    url: "http://localhost:8080/questions",
    type: 'GET',
  })).responseText;
})

我想问题是语法问题吧?代码在responseText上停止运行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-23 11:24:15

document对象没有onreadystatechange事件--这是XHR对象的一部分。jQuery AJAX方法将为您处理状态更改(这是其简单性的一部分)。

此外,成功处理程序有一个参数,即响应文本,因此需要将它添加到函数签名中,以便在函数中访问它。

改为这个..。

代码语言:javascript
复制
  $.ajax({
      url: "http://localhost:8080/questions",
      type: 'GET',
          success: function(responseText) {
          questions = JSON.parse(responseText);
          loadQuestionsData();
      }
  })
票数 1
EN

Stack Overflow用户

发布于 2017-03-23 11:26:29

您不需要使用:

代码语言:javascript
复制
$(document).on('readystatechange', function() {
});

因为readystatechange是XmlHttpRequest()的一个属性;

只需将代码更改为:

代码语言:javascript
复制
  $.ajax({
    url: "http://localhost:8080/questions",
    type: 'GET',
    success: function() {
      questions = JSON.parse(this.responseText);
      loadQuestionsData();
    }
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42974342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档