2016-12-21 13 views
0

私はangularjsとハイブリッドアプリをビルドしています。私は外部ソースからサービスを呼び出そうとしています。私は電話をかけるときには、私のコードiに誤差リモート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

これはサーバー側で処理する必要がありますが、あなたの側の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)で発生します

関連する問題