2016-12-21 2 views
0

나는 angularjs와 하이브리드 응용 프로그램을 구축 오전 및 외부 소스에서 서비스를 호출하려고합니다. 내가 전화를 걸 때 내 코드 내가 오류원격 json에서 데이터를로드 할 수 없습니다

여기
XMLHttpRequest cannot load https:XXXX/xxx.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 

을 얻고있다 URL로

app.controller('overview', function($scope, $http) { 
    $http({ 
     method : "GET", 
     url : "https://ysaf.XXXX.yourcxxxxx/resource.json" 
    }).then(function appSucces(response) { 
     $scope.resources = response.data; 
    }, function appError(response) { 
     $scope.resources = response.statusText; 
    }); 
}); 

난 내가 호출 할 경우에만, 어떤 오류가 아니라하고 로컬 .json 파일을 호출하는 경우 외부 API,이 오류가 발생합니다.

내가이 코드에서 잘못하고있는 것이 있습니까?

+0

원본 교차 요청을 허용하려면 서비스 코드를 변경해야합니다. 그게 가능하지 않다면, 당신은 자신의 서버 (어떤 교차 출처 문제가 없을 것입니다)에서 서비스를 호출하고 서버에서 귀하의 애플 리케이션에 json을 제공 할 수 있습니다 – gaurav5430

+0

이것은 서버 측에서 처리해야하지만 당신은 이것을 시도 할 수 있습니다 one side http://stackoverflow.com/a/33662315/5621827 – jitender

+1

[Access-Control-Allow-Origin 헤더는 어떻게 작동합니까?] (http://stackoverflow.com/questions/10636611/how- 이 - 액세스 제어 허용 - 원본 - 헤더 - 작품) –

답변

0

Access-Control-Allow-Origin이 서버의 응답에 설정되어 있지만 클라이언트가 다른 출처의 클라이언트가 응답에 액세스 할 수 있도록 허용하지 않았습니다.

이 경우 https://ysaf.XXXX.yourcxxxxx/resource.json은 출처에서 응답에 액세스 할 수 없도록합니다. 그러므로 당신은 그것을 읽을 수 없습니다.

0

Access-Control-Allow-Origin: *과 같은 필요한 헤더를 추가하십시오.

직면 한 문제는 CORS 문제입니다. CORS - Cross Origin Resource Sharing.

CORS 문제는 우리가 http://localhost:9080/anotherapplication (다른 포트를 액세스) http://localhost:8080/myapplication에있는 경우 우리는 abc.com과 접근 xyz.com (다른 도메인을 경우 다음과 같은 경우

1))

2)에 발생합니다

당신은 당신의 개발이 확장을 다운로드해야
관련 문제