如何将 vanilla JS 的 AJAX 请求重写为 JQuery?
How to rewrite AJAX request from vanilla JS to JQuery?
目前我正在学习 JS 并且对 vanilla JS 非常熟悉,但是 JQuery 语法对我来说似乎有点奇怪。所以我在 JS 上有以下代码,它工作得很好:
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() 被执行(它插入问题列表放入table)。
我试图用 JQuery 重写它,但它不起作用,我不明白为什么。这是我第 n 次尝试这样做:
$(document).on('readystatechange', function() {
$.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
success: function() {
questions = JSON.parse(this.responseText);
loadQuestionsData();
}
})
})
我也尝试过以下方法,但它也不起作用:
$(document).on('readystatechange', function() {
questions = JSON.parse($.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
})).responseText;
})
我想问题出在语法上?代码在 responseText.
上停止 运行
文档对象没有 onreadystatechange
事件 - 这是 XHR 对象的一部分。 jQuery AJAX 方法将为您处理状态更改(部分简单性)。
此外,成功处理程序有一个参数,即响应文本,因此您需要将其添加到函数签名中,以便您可以在函数中访问它。
改成这个...
$.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
success: function(responseText) {
questions = JSON.parse(responseText);
loadQuestionsData();
}
})
您不需要使用:
$(document).on('readystatechange', function() {
});
因为 readystatechange
是 XmlHttpRequest() 的 属性;
只需将您的代码更改为:
$.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
success: function() {
questions = JSON.parse(this.responseText);
loadQuestionsData();
}
});
目前我正在学习 JS 并且对 vanilla JS 非常熟悉,但是 JQuery 语法对我来说似乎有点奇怪。所以我在 JS 上有以下代码,它工作得很好:
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() 被执行(它插入问题列表放入table)。 我试图用 JQuery 重写它,但它不起作用,我不明白为什么。这是我第 n 次尝试这样做:
$(document).on('readystatechange', function() {
$.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
success: function() {
questions = JSON.parse(this.responseText);
loadQuestionsData();
}
})
})
我也尝试过以下方法,但它也不起作用:
$(document).on('readystatechange', function() {
questions = JSON.parse($.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
})).responseText;
})
我想问题出在语法上?代码在 responseText.
上停止 运行文档对象没有 onreadystatechange
事件 - 这是 XHR 对象的一部分。 jQuery AJAX 方法将为您处理状态更改(部分简单性)。
此外,成功处理程序有一个参数,即响应文本,因此您需要将其添加到函数签名中,以便您可以在函数中访问它。
改成这个...
$.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
success: function(responseText) {
questions = JSON.parse(responseText);
loadQuestionsData();
}
})
您不需要使用:
$(document).on('readystatechange', function() {
});
因为 readystatechange
是 XmlHttpRequest() 的 属性;
只需将您的代码更改为:
$.ajax({
url: "http://localhost:8080/questions",
type: 'GET',
success: function() {
questions = JSON.parse(this.responseText);
loadQuestionsData();
}
});