2016-09-22 4 views
2

나는이 질문은, 그리고 나는 성공 기능에서 사용할 수 없습니다Ajax 호출에서 아약스 성공 함수의 응답 데이터를 사용하는 방법

$.ajax({ 
     type: 'GET', 
     url: url, 
     dataType: 'json', 
     success: function (response) { 
      getData[name] = response; 

     } 
    }); 
alert(getData[name]); 

제 질문은 ajax 호출에서 getData를 사용하는 방법입니다

+1

가능한 복제 [jQuery를이 : 아약스 호출 성공 후 반환 데이터 (http://stackoverflow.com/questions/5316697/jquery-return-data-after-ajax-call-success) – vaso123

+0

유 선언 할 수 있습니다 getdata 배열은 전역 적으로 스크립트를 쳐다 보면서 함수 외에서 사용할 수 있습니다. –

답변

4

문제 시도는 기본적으로 Ajax 요청이 아약스 실행 한 후 요청 시작됩니다 것을 의미합니다
비동기라는 것이다 : alert(getData[name]); 그런 다음 백그라운드에서 요청을 완료하고 성공 함수를 호출하십시오.

그래서 실제로 경고는 성공 기능 전에 실행됩니다. 당신은 당신이 그것을 완료하기 전에 다른 병동에서, 어떤 일을 실행하기 위해 아약스하지 말할 필요가 원하는 것을 할 수있는 설정 async: false
당신이 액세스 할 수 있도록 아약스 범위를 벗어난 변수를 선언해야 두 번째 것은 그것이 외부 아약스

마지막 코드는 다음과 같습니다

var getData; 
$.ajax({ 
     type: 'GET', 
     url: url, 
     dataType: 'json', 
     async: false, 
     success: function (response) { 
      getData[name] = response; 

     } 
    }); 
alert(getData[name]); 
+0

감사합니다. 그게 내가 필요한거야. –

+0

'async : false'는 다른 곳에서 문서화 된 것처럼 좋은 생각이 아닙니다. –

1

변수 값 getData [name]을 ajax 호출 위에 선언해야 이후에 값을 지정할 수 있습니다.

var getData; 
$.ajax({ 
     type: 'GET', 
     url: url, 
     dataType: 'json', 
     success: function (response) { 
      getData[name] = response; 

     } 
    }); 
0

재산 '비동기 : flase'사용 코드를 한 번

0

AJAX는

비동기 자바 스크립트을 의미 d XML. 당신이 AJAX 호출이 완료되지 않습니다 alert를 호출 할 때 getData[name]가 설정되지 않은 이유를

, 즉이다.

성공 콜백 내에서 alert (또는 그와 관련있는 항목)으로 전화해야합니다.

$.ajax({ 
    type: 'GET', 
    url: url, 
    dataType: 'json', 
    success: function (response) { 
     getData[name] = response; 
     alert(getData[name]); 
    } 
}); 
관련 문제