2012-01-27 3 views
0

여기에 질문이 있습니다. 의 난과 같이 jQuery를 함께 몇 가지 Ajax를 가지고 있다고 가정 해 봅시다 :

var jqXHR = $.ajax({ 
     type: 'POST', 
     success: function(data) { 
      if(data != true) 
      { 
        return false; 
      } 
     } 
}); 

은 내가 jqXHR 객체를 반환 아약스 그 $을 알고있다. 내 질문은 다음과 같습니다 :

해당 jqXHR 개체를 사용하여 내 $ .ajax 호출의 성공 함수의 반환 값을 가져올 수 있습니까? 그렇다면 어떻게해야합니까? jqXHR 객체를 사용할 수 없다면 async를 설정하지 않고 내 성공 함수의 반환 값에 액세스 할 수있는 방법이 있습니까? $ .ajax에 false가 있습니까?

도움이 필요하십니까?

+1

'async : false'가 적입니다. 그것을 피하십시오. 성공 콜백에서 비동기 요청 사용 –

답변

3

asyncfalse으로 설정하지 않으면 설정할 수 없습니다. 나는 서버 응답이 올 때까지 페이지를 완전히 멈추기 때문에 false로 설정하지 않기를 제안합니다. 때로는 연결이 느리거나 서버가 히브 작업으로 인해 응답하는 데 시간이 걸리는 경우 브라우저를 멈추는 경우도 있습니다.

외부에서 수행하려는 ajax의 성공 처리기에서 코드를 실행할 수 있습니다.

+0

async : false를 사용하면 더 이상 Ajax를 사용하지 않습니다. 나는 그걸하고 싶지 않아. – user765368

0

그것은 가능하다 - 방법으로는 -, 당신은 내가 아약스 콜백 떨어져 알고있는 데이터에 대한 액세스를 얻을 수

jqXHR.then(function(data) { ... }); 

유일한 다른 방법으로 할 수 있도록 jqXHR도 연기 된 개체입니다 반환 멋진 점은 Ajax 요청이 전송 된 후에 여러 번 사용할 수 있으며 항상 서버에서받은 데이터를 반환한다는 것입니다.

관련 문제