2009-05-29 5 views
1

AJAX 호출이 성공했는지 확인하는 올바른 방법은 무엇입니까?AJAX 호출이 성공적이라고 결정하는 올바른 방법은 무엇입니까?

나는

return !status || (status >= 200 && status < 300); 

및 jQuery를에 prototype.js에

에서 볼 :

// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450 
    return !xhr.status && location.protocol == "file:" || 
     (xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || xhr.status == 1223; 

어느 쪽이 정확한지? Javascript 라이브러리를 사용하지 않고 AJAX를 기본 Javascript로 작성한다면 어떤 것을 사용해야합니까?

답변

5

프로토 타입은 유효한 HTTP 성공 코드 만 성공으로 처리하므로 '올바른'것으로 보입니다. jQuery는 버그와 자주 성공하는 코드를 고려하므로보다 강력합니다.

+1

/초 - 나는 예를 들어 304를 성공으로 간주하지 않을 것입니다. 전반적인 성공이 이루어지기 전에 행동의 또 다른주기가 야기되어야합니다. – annakata

+0

둘 다 그렇게 잘 자바 스크립트 라이브러리를 설정합니다 ... 그러나 그것은 성공하는 것입니다 –

1

HTTP 상태는 다음 범주로 분류

2XX : 성공

3XX :

4XX 리디렉션 : 클라이언트 오류

5XX : 서버 오류.

따라서 200-300은 ajax 호출에서 "ok"결과입니다.

상태 코드에 대한 자세한 내용은, http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

환호,

JRH을 확인하십시오.

+0

304는 수정되지 않았으므로 똑같이 유효합니다. –

관련 문제