HTTP状态406-不可接受的Spring MVC

时间:2018-11-28 06:46:38

标签: angularjs spring spring-mvc

错误是 HTTP状态406 –不可接受 根据请求中接收到的主动协商标头字段,目标资源没有用户代理可接受的当前表示形式,并且服务器不愿意提供默认表示形式。

这是一个控制器代码

@RequestMapping(value="/welcomes", method = RequestMethod.GET, headers="Accept=application/json")
    public @ResponseBody List<UserBean> welcome(@ModelAttribute UserBean userBean)
    {
    List<UserBean> usernames = retrievedataservice.findAllUsers();

    return usernames;
    }

这是有角度的js代码

<body>
   <div data-ng-app="myApp" data-ng-controller="UserController">
   <table>
    <tr><th>user name</th><th>phone</th><th>email</th></tr>
     <tr data-ng-repeat="user in usernames">
     <td><span data-ng-bind="user.username"></span></td>
      <td><span data-ng-bind="user.phone"></span></td>
       <td><span data-ng-bind="user.email"></span></td>
       </tr>   
   </table>   
    </div>
    <script>
var app = angular.module('myApp', ['ngResource']);
app.controller('UserController', ['$scope', '$resource', function($scope,$resource){
    function fetchalluser()
    {
        $scope.usernames=$resource('http://localhost:8080/SpringAngular/welcomes').query(function(data)
                {
                    return data;
                });
    };
    $scope.refresh=function(){
        fetchalluser();
    };
}]);
</script>
</body>

我调试以下代码,控制器方法“ welcome()”返回HTTP状态406-不可接受的错误。我认为有角js和spring MVC集成问题。

1 个答案:

答案 0 :(得分:0)

我认为您在响应中缺少内容类型标头。可以这样添加

@RequestMapping(value="/welcomes", method = RequestMethod.GET, produces= MediaType.APPLICATION_JSON)
    public @ResponseBody List<UserBean> welcome(@ModelAttribute UserBean userBean){
      ...
    }

或者您也可以指定为字符串

produces="application/json"

希望,这会有所帮助。