IE 10, IE 11버그 : SCRIPT7002 : XMLHttpRequest : 네트워크 오류 0x80070005, 액세스가 거부되었습니다.

Dochis·2021년 11월 4일
0
post-thumbnail

🟡 오류내용

SCRIPT7002 : XMLHttpRequest : 네트워크 오류 0x80070005, 액세스가 거부되었습니다.
외 3가지

위 4가지 이슈가 SCRIPT7002 이슈 해결을 통해 함께 해결되었으므로, 한번에 소개합니다

🟡 오류상황

Jquery의 Ajax를 통해 A사이트에서 B도메인으로 통신하고자 할 때,
JS파일은 정상적으로 잘 불러와지는데 특정 기기의 IE 10과 IE 11에서 위처럼 콘솔에러가 표시되면서 Ajax가 동작하지 않는 상황.
크롬과 파이어폭스에서는 전혀 문제가 없는 상황이라, CORS 문제는 아닌것으로 추정됨

🟡 의심해본 내용

특정 기기에서만 안되는것을 보고 방화벽 이나 백신, 확장 프로그램 등의 문제를 의심해보았지만...

  • 개발자도구 상의 Network 패널을 통해 확인해보니 JS 파일 로딩에는 문제가 없음 (200 코드로 반환됨)
  • 이미지, CSS 로딩은 문제가 없는것을 보니 Ajax만 문제인것으로 보임

🟡 해결방법 탐색

CORS

< 내용 >
IE에서만 CORS오류가 발생되는것은 아닐지?
보통 Ajax가 안되는 현상은 CORS오류이니까, IE에서만 CORS 오류가 나는것은 아닐지?
< 확인 > 인터넷 옵션 > 보안 > 인터넷 > 사용자 지정 수준 > 도메인 간의 데이터 원복 엑세스 > '사용' 설정
< 결과 > 안됨 구글링을 해보니 이렇게 해서 고쳐졌다고 하는 글도 있지만 안되었음)

IE 버그

< 내용 >
이상하게 Ajax중에서도 HTTP Status Code를 401오류를 반환하는 통신만 저런 오류가 발생되는것을 확인, 관련내용으로 구글링을 여러번 시도하였으며, IE에서 '네트워크 오류'는 네트워크 통신상에서 문제를 감지해서 IE 엔진단에서 통신 자체를 Close 시키는 경우 였음
< 확인 >
API의 코드상에서 401코드를 반환하는 API들을 모두 400코드를 반환하도록 수정함
< 결과 > 해결됨

🟡 코맨트

http status 401은 HTTP 표준에서도 '미승인(unauthorized)'을 의미하기 때문에 401에러가 발생했을 때 본문 내용을 반환하지 않는것은 버그다 라고 보는 시각이 많았습니다 (stackoverflow : https://stackoverflow.com/questions/16081267/xmlhttprequest-status-0-instead-of-401-in-ie-10)

필자도 다른 브라우저에서 401 코드가 발생하더라도 본문을 반환해주기 때문에 이는 버그라고 생각하나, IE 10과 11이 지원이 종료됨에 따라 ms측에서 해당 이슈를 대응할 의지가 없는것으로 보이기 때문에, 유기적으로 대응이 필요할것으로 보입니다

하루 빨리 IE 11의 지원 종료를 기원합니다 - 필자

0개의 댓글