반응형
Jquery - Ajax jSON 응답을 변수로 저장
저는 Ajax 요청 결과를 외부에서 액세스할 수 있는 변수로 설정하려고 합니다.나는 이 JQuery를 사용해 보았습니다 - Ajax 응답을 글로벌 변수에 저장하지만 나의 변수.beer정의되지 않은 상태로 남아 있습니다.$.getJSON그리고.$.ajax기능(두 가지 모두 시도해 보았습니다).
여기 내 코드가 있고 어디서 결과를 볼 수 있는지 확인할 수 있습니까?console.log(beer).
var beer;
$.getJSON(jsonUrl, function (json) {
beer = json;
console.log(beer); // returns beer
});
console.log(beer); // returns undefined
var beer = (function () {
var result;
$.ajax({
url: jsonUrl,
success: function (data) {
result = data;
console.log(beer); // returns beer
}
});
console.log(result); // returns undefined
if (result) return result;
})();
console.log(beer); // returns undefined
이는 비동기 요청이므로 실행 중지되지만 스크립트는 계속 진행하기 전에 응답을 기다리지 않습니다.Ajax 요청이 완료될 때까지 기다려야 하는 경우 다음과 같은 방법을 사용해 보십시오.
var beer;
$.getJSON(jsonUrl,function(json){
beer = json;
checkDrink();
});
function checkDrink() {
console.log(beer);
}
아래 코드를 제안합니다.
var beer = $.ajax({
url: jsonUrl,
async: false,
dataType: 'json'
}).responseJSON;
주요 순간은 다음과 같습니다.
- 세트
async결과를 변수로 반환하고 성공 콜백을 비동기식으로 호출하지 않음을 false로 반환합니다. - 세트
dataTypetod json - 서버 응답 문자열을 json으로 구문 분석합니다.
문제는 데이터가 서버에서 실제로 돌아오기 전에 데이터에 액세스하려고 한다는 것입니다. '성공' 기능은 실제로 Ajax 호출이 성공적으로 완료될 때 호출되는 콜백입니다.$.ajax(또는 $.get) 함수가 즉시 반환됩니다.
성공 콜백 내의 '맥주' 변수에 데이터를 넣었다는 것을 관심 있는 함수에 어떻게든 알려야 합니다.
언급URL : https://stackoverflow.com/questions/4763918/jquery-store-ajax-json-response-as-variable
반응형
'programing' 카테고리의 다른 글
| 문자열에서 첫 번째 x 문자를 제거하시겠습니까? (0) | 2023.09.02 |
|---|---|
| HTML 전자 메일 스타일 설정 모범 사례 (0) | 2023.09.02 |
| Powershell을 사용하여 VPN에 연결 (0) | 2023.09.02 |
| Android - 오류:':app:transformClassesWithDexForRelease' 작업을 실행하지 못했습니다. (0) | 2023.09.02 |
| Android SDK 위치 (0) | 2023.09.02 |