2015-11-17 16 views
14

Tôi muốn tìm nạp dữ liệu từ tệp JSON trên máy cục bộ của tôi. Nhưng tôi không thể lấy dữ liệu. Nó đang hiển thị một số lỗi tên miền chéo cho $ http.Dữ liệu tìm nạp từ JSON JSON cục bộ trong angularjs

Đây là mã của tôi.

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

Bất kỳ ai cũng có thể giúp tôi cách hiển thị dữ liệu từ tệp JSON cục bộ? Cảm ơn trước.

+0

bạn có thể thêm một fiddle] – Shreyas

+0

bạn cũng có thể cho chúng tôi biết lỗi cụ thể không? – xeon48

Trả lời

24

AngularJs < 1,6

Hãy thử bằng cách cho sự thành công và cuộc gọi thất bại lưng:

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

Tham khảo: Read local file in AngularJS

+3

.success không được dùng nữa. Sử dụng .then thay vào đó;) – LOTUSMS

1

Nếu bạn chưa làm như vậy. Hãy thử thiết lập chính sách crossdomain cho đơn đăng ký của bạn.

2

Bạn không có thông báo lỗi như "$ http: không được xác định"?

Tôi đã thử với một bộ điều khiển, điều này đang làm việc:

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

Nếu bạn chưa có, công cụ phát triển sử dụng web (Ctrl + Shift + I trong firefox).

+1

Tôi nhận được lỗi này-> XMLHttpRequest không thể tải tệp: /// C: /Users/Handson/webtest.json. Yêu cầu gốc chéo chỉ được hỗ trợ cho các giao thức giao thức: http, dữ liệu, chrome, chrome-extension, https, chrome-extension-resource – Amit

+0

Tôi đoán đó là vì bạn không có quyền truy cập các tệp cục bộ (lý do bảo mật). Bạn nên sử dụng một máy chủ web địa phương (như apache) để tránh loại lỗi này. – Pico12

Các vấn đề liên quan