使用Angular JS的$ http服务获取JSON数据

时间:2014-05-27 11:12:25

标签: angularjs

我需要从具有URL的服务器获取JSON数据:

http://xxxx.xxxx.xxxx.xxxx:8084/inpulse/api/user/listall

这是我的角度代码:

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

app.controller('Controller', function ($scope,$http)  {
    $scope.email="";
    $scope.password="";
    $scope.sample="";

    $http({
        method: 'GET',
        url: 'http://xxxx.xxxx.xxxx.xxxx/inpulse/api/user/listall',
    })
    .success(function (data, status, headers, config) {
        var ret = data;
        $scope.sample = JSON.stringify(ret);
    })
    .error(function (data, status, headers, config) {
        alert(status);
        // something went wrong :(
    });
});

现在,当我使用像http://ip.jsontest.com/这样的JSON测试网址时,相同的代码工作正常。 它绝对不是服务器的问题,因为我用REST客户端测试了它并得到了响应。我无法弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:2)

可能是 CORS 配置问题 如果您尝试从不在同一域/源中的页面访问服务器,则会收到错误,因为服务器未配置为允许CORS。

Chrome的 error reported 如下所示:

  

XMLHttpRequest无法加载http://xxxx.xxxx.xxxx.xxxx/inpulse/api/user/listall。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://fiddle.jshell.net'因此不允许访问。

除此之外,代码似乎正常工作。