无法使用AngularJS解析JSON

时间:2014-02-24 00:55:56

标签: javascript html json angularjs

我刚开始使用AngularJS并尝试了一个非常基本的例子。该网页包含一个按钮,点击该按钮我从服务器请求json。 但无论何时,只要按下按钮,代码就会执行错误函数中的部分。

HTML文件

<!DOCTYPE html>
<head>
    <title> step 4</title>
</head>

<body ng-app="step4App">
    <div ng-controller="FriendsCtrl">

        <button ng-click="loadFriends()">Load Friends</button>
    </div>

    <script src="angular.min.js"></script>
    <script src="xml2json.js"></script>
    <script src = "step4.js"></script>
</body>
</html>

JS

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

app.controller("FriendsCtrl", function($scope,$http) {
    $scope.loadFriends = function(){



        $http({method:'GET',url:'http://localhost:8080/test.jsp', params:{name:"abc",no:"LBF1151638"}}).success(function(data) {
            $scope.friends = data;
            document.write('<p>two</p>');
            document.write(data);
        }).error(function() {

            alert("error");
            });
            }

});

截至目前的jsp页面正在返回此json响应。

{"response":{"numFound":0,"start":0,"docs":[]}}

但我无法理解,为什么它总是执行错误功能。

我在浏览器控制台中检查了正在发出请求并收到47byte响应(等于JSON中的字符数)。但它不会打印JSON。

1 个答案:

答案 0 :(得分:1)

服务器上可能发生了错误。尝试使用FireFox + Firebug打开页面并检查服务器响应以确保它符合您的期望(检查状态代码和Content-Type响应标头)。

您也可以从命令行运行curl -v http://localhost:8080/test.jsp

BTW Angular会在回调中传递额外的参数。尝试提醒他们也看看他们是什么。来自http://docs.angularjs.org/api/ng/service/$http:

$http({method: 'GET', url: '/someUrl'}).
success(function(data, status, headers, config) {
  // this callback will be called asynchronously
  // when the response is available
}).
error(function(data, status, headers, config) {
  // called asynchronously if an error occurs
  // or server returns response with an error status.
});