2016-05-02 4 views
0

私はAPI restで作業する必要がありますが、毎回このエラーが発生しますか?

プリフライト要求に応答しても、アクセス制御チェックを通過しません。要求されたリソースには、「Access-Control-Allow-Origin」ヘッダーがありません。 Origin 'http://localhost:8100'はアクセスできません。

$scope.submit = function(login, password){ 
url = 'http://x.x.x.x:x/x/x/x/x/'+login+'?password='+password; 
console.log(url); 
instanceId = '1'; 
tokenId = ''; 
userId = ''; 
$http.get(url, { 
     headers: { 
     'Accept': 'application/json', 
     'Context': 'instance='+tokenId+';token='+tokenId+';user='+userId 
     } 
    }) 
    .success(function(data){ 
    $scope.firstName = data.user.firstName; 
    $scope.lastName = data.user.lastName; 
    $scope.profession = data.user.mission; 

    userId = data.user.id;*/ 
    localStorage.setItem("userId", JSON.stringify(userId)); 
    $location.path('app/home/'); 
    }) 
    .error(function(data, status){ 
    console.log(data + "-" + status); 
    alert(status); 
}); 
+3

可能な複製http://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource –

+0

http://stackoverflow.com/questions/36002979/xmlhttprequest-can-load-and-response-for-preflight-has-invalid-http-status-co –

答えて

0

CORSコルドバでパッケージ化モバイルアプリとして実行しているときに、簡単なオプションは、ちょうど地元の発展のために完全にCORSを無効にすることですionic serveまたはionic run/emulate -lで開発モードでアプリケーションを実行している、といないときにのみ問題です。 Chromeをデバッグに使用する場合は、CORSを無効にできるAllow-Control-Allow-Origin: *というプラグインがあります。
それとも、この問題を解決したい場合は、2つの方法がありあります

  • 最初に、かつ容易に、解決策は自分のAPIエンドポイントからのすべての起源を可能にすることです。欠点は、アクセスしているエンドポイントを常に制御できないことです。
  • 幸いにも、私たちは第二の方法を持っています:Ionic CLI proxy server、イオンはこれについて素晴らしいブログを提供しました。http://blog.ionic.io/handling-cors-issues-in-ionic/を参照してください。

これは役に立ちます。