2017-12-17 6 views
0

가 나는 HTTPS를 URL이 그 URL에서 데이터를 얻을 요청을 보낼 AngularJS와, 시나리오 1 : 나는 URL을 치면 브라우저에서은 내가 반응을 얻을 내 AngularJS와 응용 프로그램에서 항상 오류 401 얻을,하지만 브라우저에서 API를 치면 난 항상 여기에 URL을 사용하지만 내가 원하는 것은하는 것입니다 수없는 보안상의 이유로 정확한 응답호출하는 HTTPS를 URL 요청이

얻을 반면 :

$http({ 
     method: "GET", 
     url: "https://urlAdresss/", 
     headers: { 
      "Accept-Language": "en-US, en;q=0.8", 
      "Content-Type": "application/json;charset=UTF-8" 
     }, 
    }).then(function (_response) { 
     console.log(_response 
    } 

나는 항상

을 내가 어떤 도움을 크게 감사합니다 콘솔에서뿐만 아니라 네트워크를 오전 무단 얻을하지만 브라우저에서 동일한 URL을 치면 나는 응답 그것은 백엔드 벌금

내가 생각을하고 있음을 나타냅니다 얻을 요청을받을 때 오류 메시지가 나타나는 이유는 무엇입니까?

+0

가능한 CORS 문제? Api 및 각도가 다른 호스트에서 실행 중입니까? – lzagkaretos

+0

@lzagkaretos api가 서버에 있습니다. 로컬 호스트의 API에 문제가있을 수 있습니까? –

+0

가능성이 큽니다. 자세한 내용은 브라우저 콘솔 및 네트워크 탭을 확인하십시오. – lzagkaretos

답변

2

CORS (Cross-Origin Resource Sharing) 문제인 것 같습니다.

AngularJS 측에서는 $http 서비스가 승인 헤더를 http 요청에 자동으로 보내려면 다음 구성을 사용해야합니다.

var app = angular.module('app', []) 
    .config(function($httpProvider) { 
     $httpProvider.defaults.useXDomain = true; 
     $httpProvider.defaults.withCredentials = true; 
    }); 

그리고 백엔드에서 명시 적으로 허용 기원을 지정해야합니다 (예. http://localhost:8888).
또한 here에서 몇 가지 점에 유의하십시오.

자격 증명을 허용하려면 Access-Control-Allow-Origin은 *를 사용하면 안됩니다.