2013-04-18 19 views
6

$ http service angularJS kullanmaya çalışıyorum ama işe yaramıyor. Böyle bir konu hakkında interneti okudum ancak verilen çözümler işe yaramıyor. Ben istek durumu iptal olduğunu göstermektedir isteği gönderme deneyin zaman ben angularjs

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.min.js"></script> bu sürümünü kullanıyorum

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; 
       }); 
    }; 
}); 

: benim denetleyicisi şu var. İsteği gönderdiğim URL çok iyi çalışıyor, sadece angularJS formunda çalışmıyor. Birisi yardımcı olabilir mi?

+0

Bunu anlamak için çok muğlak ... bir örnek verebilir misiniz? –

+0

Sunucuma bazı veriler göndermeyi ve mysql DB'de saklamak istiyorum. Veriler URL'ye eklenir ve http isteği isteği olarak gönderilir. Ama geliştirici konsolunu kromda kontrol ettiğimde. Talebin geçmediğini ve iptal edildiğini görüyorum. –

+0

Bunun için pek çok neden olabilir, ne yazık ki –

cevap

0

Tüm bu CORS şeylerini kafa karıştırıcı buluyorum. Ama ne söyleyebilirim? Ben yavaş öğreniyorum. Tanımladığınız problem denetleyici tarafından düzeltilebilir olabilir, ancak giriş noktasında işleri düzeltmek daha iyi olur. Örneğin:

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

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

     ... 
    }); 

sağladığınız kodunu göz önüne alındığında, bu da (test) çalışabilir:

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; 
       }); 
    }; 
}); 

iki yöntemde, bütün sihirli bu iki satırda olur:

0

Eğer CORS uzantısı ile krom kullanarak kontrol edebileceğiniz CORS değilse, isteğinizin zaman aşımını ayarlamayı deneyin:

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 ayarı hiçbir zaman benim için çalıştı, bunun yerine sunucu önemlidir.