2013-03-13 1 views
1

배열을 선언 한 다음 여러 값 행을 반환하는 ajax 호출을 작성합니다. 이전에 선언 한 배열에이 행의 ID를 추가하려고하지만 정의되지 않은 값을 계속 반환합니다.아약스 호출에서 배열에 추가 javascript - undefined

var recipeIds = Array(); 
    $.ajax({ 
     url: url, 
     type: 'POST', 
     contentType: "application/json", 
     dataType: 'jsonp', 
     crossDomain: true, 
     jsonp: 'jsoncallback', 
     cache:true, 
     success: function(data, status){ 
      $.each(data, function(i,item){ 
          recipeIds.push(item.id); 
     }); 
     }, 
     error: function(){ 
      console.log("Ajax not working - recipies in cat"); 
     } 
    }); 
    alert("array0 = " + recipeIds[0]); 

의견이 있으십니까?

+0

가능한 복제본 [AJAX 함수에서 변수가 반환되지 않음] (http://stackoverflow.com/questions/12475269/variable-doesnt-get-returned-from-ajax-function) –

답변

3

경고를 받으면 아약스 호출이 아직 반환되지 않았습니다. 비동기식이기 때문에 ayax 호출은 이후 경고 발생 후 발생합니다.

ajax 함수에 전달한 success 콜백 내부의 결과를 사용해야합니다.

+0

아, 맞아. 고마워. 가끔은 약간 두꺼워! 그러나 나는이 변수를 사용할 필요가있다 ... 실제로 다른 아약스 호출을 만들기 위해서. 해결 방법에 대한 제안 사항이 있습니까? – cianBuckley

+0

예, 성공 콜백 내부 또는 성공 콜백에서 호출 한 함수로부터 다른 호출을 수행하십시오. 나는 [이 대답] (http://stackoverflow.com/a/12475285/263525)에 예를 든다. –

+0

좋아 .. 고마워. – cianBuckley