현재 JS를 연구 중이며 바닐라 JS에 익숙하지만 JQuery 구문이 약간 이상해 보입니다. 그래서 내가 JS에 다음 코드를 가지고 있고 그것은 잘 작동 : 여기vanilla JS에서 AJAX 요청을 JQuery로 다시 작성하는 방법은 무엇입니까?
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을 얻고 responce가 준비되면, 기능 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가 당신을 위해 응답을 deserialise 할 것이기 때문에 문제를 추측 할 것이다. 그러므로 당신은 객체에서'JSON.parse()'를 호출하고 오류를 얻는다. –
문서 개체에'readystatechange' 이벤트가 있습니까? 해당 이벤트 처리기에서 코드를 이동하면 작동합니다. – Archer
@Archer 잘 목격, 그보고 싶었어. OP 대신 document.ready 처리기를 사용하십시오. '$ (function {) {$ .ajax (...' –