2014-06-09 3 views
0

내가 루프 내부 falseasync 세트 아약스 요청을 실행 중지하고, 여기에 2에서 카운터 스크립트JQuery와 아약스 비동기은

var x = 0; 
for(i=0; i<10; i++){ 
    $.ajax({ 
      async: false, 
      global: isGlobal, 
      type: 'POST', 
      url: url, 
      dataType: 'json', 
      data: JSON.stringify(body), 
      headers: {'Content-type':'application/json', 'Accept':'application/json'}, 
      success: function(result){ 
      x = result.something.value; 
      }, 
      error: function(){ 
       callback(false); 
      } 
    }); 
    console.log(x); // debug x value 
} 

이유가 제대로 작동하지 않는 어떤 생각이 때 중지? 추신 : url은 (는) 크로스 도메인입니다.

+0

더 이상 아약스를 사용하지 않으셨습니까? 그 의미는 무엇인가? 제발 말하지 말고 코드를 빌려주세요, 나는 길을 잃었다! –

+0

내가 할 필요가있는 것은'x' 변수가 각 요청에 대해 변경되도록하는 것입니다. 그리고 그것은 내 코드가 잘못되어 올바른 방향으로 나를 가리 키도록합니다. 감사합니다 –

+0

아약스는 * Asynchronous Javascript and Xml *을 나타냅니다. async를 false로 설정하여 * 비동기 * 부분을 제거 했으므로 실제로 아약스가 아니며 sjax, * Synchronous Javascript and Xml *이됩니다. – adeneo

답변

0

나는이 문제를 해결합니다. 당신, 방문객이 나의 것과 같은 문제를 가지고있는 경우를 대비하여 여기에 작업 스크립트가 있습니다.

var theList = [/*LIST GOES HERE*/]; 
var yourGlobalVar = ''; 
i = 0; 
(function gcr(){ 
    var body = { 
    ID: theList[i].ID 
    }; 

    $.ajax({ 
      async: false, 
      global: isGlobal, 
      type: 'POST', 
      url: url, 
      dataType: 'json', 
      data: JSON.stringify(body), 
      headers: {'Content-type':'application/json', 'Accept':'application/json'}, 
      success: function(result){ 
      yourGlobalVar += result.anything.value; 
      if(i < theList.length - 1){ 
       // wait for the response then call itself 
       i++; 
       gcr(); 
      } 
      } 
    }); 
})();