0

chrome dev console로 각도 앱을 디버그하려고합니다. 각도에서 로컬 서버로 요청을 보내려고합니다. 이 답변을 읽은 후이 기본 HTTP 인증 요청을 기본 인증과 함께 사용하려면 어떻게해야합니까?

$http = angular.element($0).injector().get('$http'); 
$base64 = angular.element($0).injector().get('$base64'); 

var auth = $base64.encode("user:passwd"); 
var authHeaders = {"Authorization": "Basic " + auth,"Access-Control-Allow-Origin":"*"}; 

$http.get("url",{headers:authHeaders,method:"GET"}) 

: 나는 다음을 시도했습니다 나는 사용자 정의 헤더가 문제가 있다고 생각 https://stackoverflow.com/a/30296149/1496826

. 그래서 저는 몸에서 인증 헤더를 퍼팅 시도 :

$http.get("url",{data: {"Authorization": "Basic " + auth,"Access-Control-Allow-Origin":"*"},method:"GET"}) 

하지만 난 여전히 같은 오류가 점점 오전 :이 같은 GET 요청은 우편 배달에서 잘 작동

XMLHttpRequest cannot load "url". No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 401.

:

var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "url", 
    "method": "GET", 
    "headers": { 
    "authorization": "Basic bWdhcasdasd", 
    "cache-control": "no-cache", 
    "postman-token": "XXXXXX-XXXXXX-xXXXX-xXXXX" 
    } 
} 

- $ http default/common header 등 여러 가지 변형을 시도했지만 모두 실패했습니다. 도와주세요.

+0

인증을받지 않고 간단한 요청을 시도하여 정상적으로 작동 했습니까? 다음과 같이 : $ ({method : 'GET', url : '/ someUrl' }) 함수 successCallback (응답) { }, function errorCallback (응답) {}); – ukn

답변

0

이것은 CORS입니다.

CORS 헤더를 서버 측에서 처리해야합니다. 여기에 서버 측 코드가 표시되지 않지만이 오류가 사라지게하려면 리소스를 요청할 수있는 도메인을 지정해야합니다.

예외는 서버 응답을 가로채는 브라우저에서 가로 채고, Allow-Control-Allow-Origin 헤더를 찾지 못하면 응답을 사용자 코드로 전달하지 않습니다 (교차 원어 요청의 경우에만 발생).

이것은 Postman이 응답을 보도록 한 이유입니다. 크롬이하는 일을 수행하지 않기 때문에 아무런 확인도하지 않습니다.

내가 올바른 솔루션은 서버 측 코드를 수정하고 Allow-Control-Allow-Origin header 대안 빠른하지만 임시 해결 방법은 서버 응답을 차단하고,이 Allow-Control-Allow-Origin*에 (어떤 의미 추가합니다 크롬에 대한 this 플러그인을 설치하는 것입니다을 지정하는 것입니다 말했듯 도메인)이 속임수는 크롬을 속이고 응답을 보게합니다.

+0

서버 측 코드에 대한 액세스 권한이 없습니다. 다른 사람이 관리하는 장고 응용 프로그램입니다. 모든 사용자에게 설치를 요청할 수 없으므로 플러그인 솔루션을 사용할 수 없습니다. 클라이언트 측에서 구현할 수있는 대안을 제안하십시오 – Mohit

+0

불행히도 해결책이 없습니다. 서버 쪽 manteiner에게 연락하여 머리글에 도메인에 와일드 카드를 추가하도록 요청해야합니다. 웹상에서 cors 관련 문제를 찾으면이 주제가 종종 발생하지만 해결책은 응답에서 올바른 헤더를 설정하는 것입니다. 이는 서버 측에서만 수행됩니다. – Karim

관련 문제