2017-05-13 12 views
1

私はangularjsでCorsが必要です 私はwebapiにcorsを使用しません。 は、私は私はそれが正常に動作しているPOSTMANを使用してみました 、angularjsを使用して基本認証を使用してデータを取得しようとしているが、私は多くのことをしようとしたが、それは以下のようにエラーを示していることが に動作していない私のangularjsアプリケーションを使用しています:AngularJSコールはPOSTMANで動作しますがAngularJSアプリケーションでは動作しません - プリフライトリクエストに対する応答がアクセスコントロールチェックに合格しません

リソースを読み込めませんでした:サーバーは401の状態で応答しました (許可されていません)index.html:1 XMLHttpRequestは012を読み込めませんhttps://api.url/token。プリフライト要求に対する応答が、 アクセス制御チェックに合格していません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません( )。 Origin 'http://localhost:63122'は であるため、アクセスは許可されていません。応答は、HTTPステータスコード401

を持っていた私は以下のようにサンプルコードとして試みた:

それはPOSTMANで働いているとして、それは私のアプリケーションで作業されていない理由を私は、変更を持っている必要があり
var myApp = angular.module("myApp", ['ngCookies']); 
myApp.config(['$httpProvider', function ($httpProvider) { 

    $httpProvider.defaults.useXDomain = true; 
    $httpProvider.defaults.withCredentials = true; 
    delete $httpProvider.defaults.headers.common['X-Requested-With']; 
} 

]); 
myApp.controller("GetDataController", ["$scope", "$http", function ($scope, $http) { 
    $scope.GetToken = function() { 
     debugger; 
     var appdata = $.param({ 
      grant_type: 'credentials', 
      scope: 'Customer', 
     }); 

     $http({ 
      async: true, 
      crossDomain: true, 
      method: 'GET', 
      url: 'https://api.url.net/token', 
      data: appdata, 
      headers: { 

       "username": "847fd9f9fg9h7h66jl8ljdggff", 
       "password": "302kfsg7fhhjh0dgjngfdjd", 
       "Authorization": "Basic Mufdnfaffa8439flg8g" 

      } 
     }).then(function (response) { 
      debugger; 
      $scope.displaymessage = response.data; 

     }, function errorCallback(response) { 
      $scope.displaymessage = response; 
      console.log(response) 
     }); 
    }; 

}]) 

を..

答えて

1

CORSの場合クロスドメインリクエストの場合はCORSが入ります。あるドメインから別のドメインに要求が送信されたときの意味。 (Postmanは、「スタンドアロン」アプリケーションではなく、それに割り当てられたいくつかのドメインでホストされているウェブサイトのようなものであるため)Postmanから

通話はdomainから送信されません。だからCORSはこの場合には現れません。これはよく説明されているhereです。

ただし、Angular JSアプリは一部のドメインでホストする必要があります。例:localhostまたはmyexample.com。だからあなたのアプリから同じコールが送信されたときは、CORSが必要です。

CORSは、アプリケーションではなくサーバーに実装する必要があります。サーバーは、特定のドメインまたはすべてのドメインからの呼び出しを受け入れるように構成する必要があります。 Web APIの所有者に連絡してCORSを実装するよう依頼する必要があります。

関連する問題