2013-04-18 30 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>

के इस संस्करण का उपयोग कर रहा: मैं अपने नियंत्रक में निम्नलिखित है। जिस यूआरएल को मैं अनुरोध भेज रहा हूं वह बहुत अच्छी तरह से काम कर रहा है, यह सिर्फ कोणीय जेएस के रूप में काम नहीं करता है। क्या कोई मदद कर सकता है?

+0

यह समझने के लिए बहुत अस्पष्ट है ... क्या आप एक उदाहरण दे सकते हैं? –

+0

मैं अपने सर्वर पर कुछ डेटा भेजने की कोशिश कर रहा हूं और इसे mysql डीबी में स्टोर करना चाहता हूं। डेटा यूआरएल में जोड़ा जाता है और http प्राप्त अनुरोध के रूप में भेजा जाता है। लेकिन जब मैं क्रोम में डेवलपर कंसोल की जांच करता हूं। मैं देखता हूं कि अनुरोध नहीं जाता है और रद्द हो जाता है। –

+0

इसके लिए बहुत सारे कारण हो सकते हैं, दुर्भाग्यवश –

उत्तर

0

मुझे यह सभी कॉरस सामान उलझन में मिलते हैं। लेकिन मेरे पास कहने को क्या है? मैं धीमी शिक्षार्थी हूं। आपके द्वारा वर्णित समस्या नियंत्रक से ठीक हो सकती है, लेकिन मुझे लगता है कि प्रविष्टि के बिंदु पर चीजों को सही तरीके से सेट करना बेहतर है। उदाहरण के लिए:

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

यदि यह सीओआरएस नहीं है, तो आप सीओआरएस एक्सटेंशन के साथ क्रोमियम का उपयोग करके जांच सकते हैं, अपने अनुरोध का टाइमआउट सेट करने का प्रयास करें:

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 सेट करना कभी भी मेरे लिए काम नहीं करता है, बल्कि यह सर्वर का मामला है।