2015-11-17 6 views
14

मैं अपनी स्थानीय मशीन पर जेएसओएन फ़ाइल से डेटा लाने के लिए चाहता हूं। लेकिन मैं डेटा प्राप्त करने में सक्षम नहीं हूं। यह $ http के लिए कुछ क्रॉस डोमेन त्रुटि दिखा रहा है।कोणीय में स्थानीय JSON FILE से Fetchin डेटा

मेरा कोड यहां है।

angular.module('myApp',[]).controller('myCtrl', function ($scope, webtest) {webtest.fetch().then(function (data) {$scope.accounttype = data;})}); .factory('webtest', function($q, $timeout, $http) {var Webtest = { 
    fetch: function(callback) { 
     return $timeout(function() { 
      return $http.get('webtest.json').then(function(response) { 
       return response.data; 
      }); 
     }, 30); 
    } 
}; 
return Webtest;}); 

कोई भी कृपया मेरी मदद करें कि स्थानीय JSON फ़ाइल से डेटा कैसे प्रदर्शित करें? अग्रिम में धन्यवाद।

+0

क्या आप एक पहेली जोड़ सकते हैं] – Shreyas

+0

क्या आप हमें विशिष्ट त्रुटि भी दिखा सकते हैं? – xeon48

उत्तर

24

AngularJS < 1,6

सफलता और विफलता कॉल पीठ देकर प्रयास करें:

$http.get('someFile.json') 
     .success(function(data) { 
      angular.extend(_this, data); 
      defer.resolve(); 
     }) 
     .error(function() { 
      defer.reject('could not find someFile.json'); 
     }); 

AngularJS> 1,6

$http.get('someFile.json'). 
    then(function onSuccess(response) { 
    angular.extend(_this, data); 
    defer.resolve(); 
    }). 
    catch(function onError(response) { 
    console.log(response); 
    }); 

देखें: Read local file in AngularJS

+3

.success को बहिष्कृत किया गया है। इसके बजाय .then का उपयोग करें;) – LOTUSMS

1

यदि आपने पहले से ऐसा नहीं किया है। अपने आवेदन के लिए crossdomain नीति सेट अप करने का प्रयास करें।

2

क्या आपके पास "$ http: परिभाषित नहीं है" जैसे त्रुटि संदेश नहीं है?

मैं एक नियंत्रक के साथ की कोशिश की, इस काम कर रहा है:

var ngApp = angular.module("ngApp", []); 

ngApp.controller('myController', ['$http', function($http){ 
    var thisCtrl = this; 

    this.getData = function() { 
    this.route = 'webtest.json'; 
    $http.get(thisCtrl.route) 
    .success(function(data){ 
     console.log(data); 
    }) 
    .error(function(data){ 
     console.log("Error getting data from " + thisCtrl.route); 
    }); 
    } 
}]); 

यदि आप नहीं, उपयोग वेब डेवलपर उपकरण (Ctrl + फ़ायरफ़ॉक्स में Shift + मैं)।

+1

मुझे यह त्रुटि मिल रही है-> XMLHttpRequest फ़ाइल लोड नहीं कर सकता: /// C: /Users/Handson/webtest.json। क्रॉस मूल अनुरोध केवल प्रोटोकॉल योजनाओं के लिए समर्थित हैं: http, डेटा, क्रोम, क्रोम-एक्सटेंशन, https, क्रोम-एक्सटेंशन-संसाधन – Amit

+0

मुझे लगता है कि ऐसा इसलिए है क्योंकि आपको स्थानीय फ़ाइलों (सुरक्षा कारण) तक पहुंचने का अधिकार नहीं है। इस तरह की त्रुटि से बचने के लिए आपको स्थानीय वेब सर्वर (जैसे अपाचे) का उपयोग करना चाहिए। – Pico12

संबंधित मुद्दे