如何使用AngularJS从其他域(无回调函数)加载JSON数据对象

时间:2014-08-17 03:41:16

标签: json angularjs

是否可以在AngularJS中加载没有回调函数的JSON数据?如果我手动下载json文件并将网址更改为' phones / phones.json'。在jQuery中,http://www.sitepoint.com/jsonp-examples/

是可能的
var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', ['$scope', '$http',
    function ($scope, $http) {
    $http.get('https://raw.githubusercontent.com/angular/angular-phonecat/master/app/phones/phones.json').success(function(data) {
        $scope.phones = data.splice(0, 5);
    });

    $scope.orderProp = 'age';

}]);

求助:谢谢!我改变了#34; raw.githubusercontent.com/angular/angular-phonecat/master/app/phones/phones.json" to" rawgit.com/angular/angular-phonecat/master/app/phones/phones.json"

请参阅https://rawgit.com/faq

正如Jared所说的那样,这是服务器方面的问题。

1 个答案:

答案 0 :(得分:3)

问题不在于您的客户,而在于您的服务器。

http://plnkr.co/edit/a7K79KTae3CPPZx7XMfH?p=preview

var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.controller('PhoneListCtrl', ['$scope', '$http',
    function ($scope, $http) {
    $http.get('https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS').success(function(data) {
        $scope.phones = data;
    });

    $scope.orderProp = 'age';

}]);

这几乎相同的代码指向不同的网址并且有效。

我认为您需要HTTP请求的响应才能包含" Access-Control-Allow-Origin"标题值为#" *"从另一个站点访问内容。如何做到这将取决于您的服务器技术。