2013-04-18 6 views
6

私はangularJSの$ httpサービスを使用しようとしていますが、動作していないようです。私はそのような問題についてオンラインで読んだが、与えられた解決策は役に立たない。私は自分のコントローラに次のようにあります

app.controller('Ctrl', function($scope, $http){  
    var url = http://someurl?name=foo; 
    $scope.submitRules = function(){ 
     $http({method: 'GET', url: url}). 
       success(function(data, status) { 
       $scope.status = status; 
       $scope.data = data; 
       }). 
       error(function(data, status) { 
       $scope.data = data || "Request failed"; 
       $scope.status = status; 
       }); 
    }; 
}); 

私はそれが要求ステータスがをキャンセルしていることを示してリクエストを送信しようとするたびに、私はangularJS <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.min.js"></script>

のこのバージョンを使用しています。リクエストを送信しているURLは正しく機能していますが、それはangularJSの形式では機能しません。 誰かを助けることができますか?

+0

これはあまりにもわかりにくいです。例を挙げてください。 –

+0

サーバにデータを送信しようとしていて、それをmysql DBに保存したいとします。データはURLに追加され、http get requestとして送信されます。しかし、私はクロームで開発者のコ​​ンソールをチェックします。リクエストが通過せずキャンセルされることがわかりました。 –

+0

残念なことに、それにはたくさんの原因が考えられます –

答えて

0

私はこのCORSのすべてのものを混乱させることがわかります。しかし、私は何を言うことができますか?私は遅い学習者です。あなたが記述した問題は、コントローラから修正可能かもしれませんが、私はそれがエントリのポイントで物事を設定する方が良いと思います。例:あなたが提供したコードを考えると

angular.module('myApp', ['ngResource', 'ui.bootstrap']). 
    config(function($httpProvider) { 

     // Enable CORS 
     $httpProvider.defaults.useXDomain = true; 
     delete $httpProvider.defaults.headers.common['X-Requested-With']; 

     ... 
    }); 

、これも(テストしていない)に動作可能性がありますいずれかの方法で

app.controller('Ctrl', function($scope, $http, $httpProvider){  
    var url = http://someurl?name=foo; 
    $scope.submitRules = function(){ 

     // Enable CORS 
     $httpProvider.defaults.useXDomain = true; 
     delete $httpProvider.defaults.headers.common['X-Requested-With']; 

     $http({method: 'GET', url: url}). 
       success(function(data, status) { 
       $scope.status = status; 
       $scope.data = data; 
       }). 
       error(function(data, status) { 
       $scope.data = data || "Request failed"; 
       $scope.status = status; 
       }); 
    }; 
}); 

、すべての魔法は、これら二つのラインで起こる:

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

クロムをCORS拡張子で確認できるCORSでない場合は、リクエストのタイムアウトを設定してください:

app.controller('Ctrl', function($scope, $http){  
    var url = http://someurl?name=foo; 
    $scope.submitRules = function(){ 
     $http({ 
      method: 'GET', 
      url: url, 
      timeout: 50000 
     }). 
     success(function(data, status) { 
      $scope.status = status; 
      $scope.data = data; 
     }). 
     error(function(data, status) { 
      $scope.data = data || "Request failed"; 
      $scope.status = status; 
     }); 
    }; 
}); 

$ httpProviderをに設定しても、は私のために働いたのではなく、むしろサーバーの問題です。

関連する問題