2014-01-13 5 views
0

에 크롬에서 ASYNC하지만 SYNC입니다 : 내가 크롬에서 실행하면

$.ajax("non-nonexistent-url", { 
    error: function() { 
     alert("FOO"); 
    } 
}); 
alert("BAR"); 

, 내가 얻을 "을 BAR "다음"FOO "경고, 내가 예상하는 동작입니다 - 아약스 호출은 비동기입니다. 그러나 IE에서는 "FOO"가 표시되고 "BAR"은 동기식 호출처럼 보이지만 그 이유는 무엇입니까? 기본적으로 비동기이어야합니다. 맞습니까? 나는

+0

이렇게하면 문제가 재현됩니다. http://codepen.io/anon/pen/KDAGI IE10에서 테스트되었습니다 –

+0

인라인 오류 옵션 대신 .fail을 사용하는 것이 하나의 해결 방법이 될 수 있습니다. 이것이 일어나는 이유에 대한 대답. –

+0

나를 위해 IE9에서 작동 – adeneo

답변

1

... 어떤 콜백 전에 $.ajax 반환 실행되는 이유에 가정 보장된다 희망 :

URL의 호스트가 존재하지 않는 경우를, 어떤 요청이 실제로 이루어지지 않습니다. IE에서 요청은 비동기식이지만 다른 브라우저에서는 호스트 조회도 비동기식입니다.

+0

보이는 것처럼, 정확히 무슨 일이 일어나고 있는지, 고마워! – xman85