jQuery ajax status code가 0인 경우 해결 방법

Ajax : status code = 0

노트북에서 Python과 Django를 이용하여 웹 개발을 하고 있다. Ajax를 이용하여 데이터를 출력하는데, status code가 ‘0’이 나오면서 에러가 발생한다.

Ajax에는 Same Origin Policy라는 원칙이 있다.

Ajax에는 Same Origin Policy라는 원칙이 있다. 말 그대로, 현재 브라우져에 보여지고 있는 HTML을 내려준 웹서버(Origin)에게만 Ajax 요청을 보낼 수 있다. (출처 : http://blog.iolo.kr/494)

html 페이지에서는 요청 url을 localhost로 지정했는데, 크롬 브라우저에서는 127.0.0.1로 요청을 날리니 발생하는 에러였다. 보안상의 이유로 크롬 브라우저가 막은 것이다. 둘을 맞춰주니 정상적으로 실행된다.

만약 다른 도메인의 서비스를 사용해야 한다면

CORS(Cross-Origin Resource Sharing)를 적용한다.

그런데 익스플로러는 Same Origin Policy 적용이 안된 것 같다.

인터넷 익스플로러에서는 주소창에 ‘localhost’와 ‘127.0.0.1’을 입력하고 동일한 페이지를 요청해도 모두 정상 동작한다.

참고

– OS : Windows 7 Professional K

– 크롬브라우저 : 버전 51.0.2704.84 m (64-bit)

– 인터넷익스플로러 : 버전 : 11.0.9600.17843

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤