2013-04-18 38 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數據庫。數據被添加到URL並作爲http獲取請求發送。但是當我用chrome檢查開發者控制檯時。我看到請求沒有通過並被取消。 –

+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 從來沒有爲我工作,這是相當服務器的問題。