angularjs - HTTP 状态 406 - 不可接受 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>
我调试以下代码,Controller方法“welcome()”返回HTTP状态406-不可接受的错误。我认为 angular js 和 spring MVC 集成问题。
解决方案
我认为您在响应中缺少内容类型标头。可以这样添加
@RequestMapping(value="/welcomes", method = RequestMethod.GET, produces= MediaType.APPLICATION_JSON)
public @ResponseBody List<UserBean> welcome(@ModelAttribute UserBean userBean){
...
}
或者您也可以指定为字符串
produces="application/json"
推荐阅读
- sql - 没有 sp_executesql 的动态 SQL
- actions-on-google - 是否存在用户可以响应的最大长度或时间量(响应 Google 上的操作意图)
- swift - 如何将 UIDatePicker 设置为始终为 UTC 时间和日期,而忽略夏令时
- google-chrome-extension - ExtensionForceInstallList Chrome 浏览器不自动更新
- python - 通过并行化/多处理加速 Python 代码的选项
- javascript - 如何使用 Javascript 在 ID 中设置标签样式?
- android - Android SQLITE 图像问题:尝试在空对象引用上调用虚拟方法“java.lang.String android.net.Uri.toString()”
- mysql - 如何在 MySQL 存储过程中将我的输入作为列标题传递?
- ios - 如何为 SFSafariViewController 中的控件设置自定义字体?
- python - python:从种子文件中提取.bz2压缩文件