目前我正在學習JS,並且非常熟悉vanilla JS,但對於我來說JQuery語法似乎有點奇怪。所以,我對JS下面的代碼和它工作得很好:如何重寫從香草JS到JQuery的AJAX請求?
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次嘗試這樣做:
$(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;
})
我想這個問題是語法?代碼停止運行響應文本。
檢查錯誤控制檯。我猜這個問題是因爲jQuery會爲你反序列化響應,因此你在一個對象上調用'JSON.parse()'並得到一個錯誤。 –
文檔對象是否有'readystatechange'事件?只需將該代碼移出該事件處理程序即可使用。 – Archer
@阿徹很好看,錯過了。 OP,請改用document.ready處理程序; '$(function(){$ .ajax(...' –