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



댓글 쓰기

0 댓글