错误是 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集成问题。
答案 0 :(得分:0)
我认为您在响应中缺少内容类型标头。可以这样添加
@RequestMapping(value="/welcomes", method = RequestMethod.GET, produces= MediaType.APPLICATION_JSON)
public @ResponseBody List<UserBean> welcome(@ModelAttribute UserBean userBean){
...
}
或者您也可以指定为字符串
produces="application/json"
希望,这会有所帮助。