2013-12-19 2 views
-6

MVC4에서 내보기에서 ajax 호출을하고 있습니다. 코드는 다음과 같습니다어쨌든 동기식 아약스 전화를 걸 수 있습니까?

$.ajax({ 
    contentType: 'application/json; charset=utf-8', 
    method: 'GET', 
    url: "Gateway/DB_Rola?count="+(n+1), 
    data: things[n], 
    success: function (Data) { 
    var mera_obj = Data.key; 
    document.getElementById("Param2").value = '(' + mera_obj.Response_Code + ' , ' + mera_obj.Response_Description + ')'; 
    }, 
    error: function() { 
     alert("ERROR: can't connect to Server this time"); 
     return false; 
    } 
}); 
alert("call done for "+(n)); 

내가이 전화를 걸 때, 아약스 요청을 URL로 전송되고 응답하기 전에, alert는 아약스 외부에있는 실행됩니다. 나는 응답을 기다린 후 더 멀리 나아가고 싶다. 동기식 아약스 호출을 의미합니다.

+1

"동기식 ajax 호출"을 검색해 보셨습니까? 동기가 필요하지는 않습니다. – Blender

+0

이것은 여러 차례 응답되었습니다 –

+0

여기에 게시하기 전에 조사를 해보십시오. 이것은 Google이 쉽게 대답하는 질문입니다. 심지어 jQuery.com – Deryck

답변

3

예. async 플래그를 false로 설정하십시오.

$.ajax({ 
    contentType: 'application/json; charset=utf-8', 
    method: 'GET', 
    async: false, 
    ... 
+0

호기심 때문에 ... 동기식 아약스 호출을 사용하는 데 어려움을 겪고 있습니다. 이 옵션을 false로 설정하면 실제로 어떻게됩니까? 응답을 받으면 어떻게됩니까? 오류/성공 처리기가 ajax 호출 다음의 코드보다 먼저 평가됩니까? 예를 들어, Marium의 질문에서 ... 성공 처리기가 경고 (Ajax 메서드 외부의 경고)보다 먼저 실행됩니까? – Leo

+1

false로 설정하면 기본적으로 완전히 차단되는식이됩니다. 전역 변수를 설정하고 완료되면이를 갱신 한 다음 함수가 새롭고 갱신 된 전역 변수 값으로 끝난 후에 한 줄씩 계속할 수 있습니다. 아니요. 호출 처리가 완료되면 성공 처리기가 발생하고 그 이후에는 경보가 발생합니다. – brandonscript

+0

맞아, 그게 무슨 일이 일어날 지 의심 스러웠다. 그러나 나는 아직도 내가이 이익을 얻을 수있는 방법을 깨닫기 위해 고심하고있다 ... 나는이 행동을 필요로했을 수도있는 시나리오를 구현하거나 실행하지 못했다. 나는이 설정이 끔찍한 사용자 환경을 만들어 낼 것이라고 상상할 수 있습니다. 서버로 전체 포스트를 되돌릴뿐입니다. 어쨌든 당신의 응답 메이트에 대한 감사합니다. – Leo

관련 문제