2017-11-15 4 views
1

테스트하는 동안 브라우저에서 CORS를 사용하도록 설정 한 경우 $ http.get()을 사용하여 API 요청을 커밋합니다. 물론, 그것은 단지 bandaid입니다.

나는이 문서 발견 Angular $http.get: How to catch all the errors?

을 그리고 내 코드는 다음으로 설정 한() (잡기)와 캐치 코드가 실행되는 동안 예상대로 오류가 여전히 발생합니다 :.

XMLHttpRequest는 액세스 제어 검사로 인해 '여기에 URL'을로드 할 수 없습니다.

CORS를 수동으로 사용하지 않도록 설정하더라도 내 catch()에도 불구하고 여전히 401 오류가 발생합니다.

목표는 콘솔에서 이전의 "빨간색 텍스트"오류를 방지하고 사용자에게 경고로 처리하는 것입니다.

+0

대부분의 브라우저 개발 도구는 처리 여부와 관계없이 잘못된 AJAX 응답을보고합니다. 그것에 대해 할 수있는 일은 없습니다. – SLaks

+0

api에서 cors를 활성화해야합니다 –

답변

0

브라우저에서 http 요청을 보내면 먼저 프리 플라이트라고하는 OPTIONS 요청을 보냅니다. 프리 플라이트 요청에 대한 응답에 Access-Control-Allow-Origin 헤더가 포함되어 있지 않으면 브라우저가 요청을 차단합니다.

이 프리 플라이트 요청은 자바 스크립트에 투명합니다. 따라서 모든 Ajax 호출에 대해 대상이 교차 도메인 인 경우 브라우저는 두 가지 요청을 보냅니다.

오류가 발생하더라도 브라우저는 프리 플라이트 요청이 실패하면 콘솔에서 네트워크 오류를보고합니다.

+0

이것을 피할 수있는 방법이 있습니까? –

+0

브라우저에 브라우저에 네트워크 오류가 표시되지 않도록 하시겠습니까? –