数据从 spring java 控制器返回到 angularjs 服务时出现 406 错误
406 err while data returning from spring java controller to angularjs service
我无法从控制器获取数据到 angular 服务请检查我的代码任何人建议我做什么
提前致谢
pom.xml
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.4</version>
</dependency>
java控制器
@RequestMapping(value="/getAlluserDetails", method=RequestMethod.GET)
@ResponseBody
public List<Map<String, Object>> getAllUserDetails(){
System.out.println("getAllUserDetails");
ModelMap mav =new ModelMap();
List<Map<String, Object>> listofusers = userServices.getUserData();
System.out.println("listofusers : "+listofusers);
return listofusers;
index.html
app.service("myServices",function($q,$http,$log) {
var deffered = $q.defer();
var responseData;
this.getUsers = function(){
return $http({
method:'GET',
url:'getAlluserDetails.htm'
// data: JSON.stringify(search)
}).then(function(response){
// $scope.users = response.data;
$log.info("samei"+response);
return response;
},function(reason){
$log.info("samei 123err"+reason);
return reason;
});
};
<!doctype html>
<html ng-app="app">
<head lang="en">
<meta charset="utf-8">
<title>AngularJS Routing</title>
<script src="http://code.angularjs.org/1.2.13/angular.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script>
<script type="text/javascript" src="resources/scripts/main.js"></script>
<script type="text/javascript" src="resources/static/services/services.js"></script>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" href="resources/static/css/style.css">
<script type="text/javascript" src="resources/static/controllers/LoginController.js"></script>
<script type="text/javascript" src="resources/static/controllers/UserController.js"></script>
<script type="text/javascript" src="resources/static/controllers/GetUserDetailsController.js"></script>
</head>
<body>
<div class="container" width="100px">
<h2>Medhassu user data upload</h2>
<div ui-view></div>
</div>
在我的浏览器中
response header
内容语言
恩
内容长度
1067
内容类型
text/html;字符集=utf-8
日期
2018 年 2 月 25 日,星期日 15:49:04 GMT
服务器
Apache-Coyote/1.1
request header
接受
application/json、text/plain、/
接受编码
gzip,放气
接受语言
en-US,en;q=0.5
连接
活着
主持人
localhost:8081
推荐人
http://localhost:8081/UserRegistration/
用户代理
Mozilla/5.0 (Windows NT 6.3; W…) Gecko/20100101 Firefox/58.0
HTTP 406 表示提供的响应不被目标接受。
要返回 ModelAndView 使用 Content-Type = text/html
如果是对象(list,map..)/JSON使用Content-Type = application/json
并将请求url更改为http://<context>/getAlluserDetails
None 的转换器或依赖项帮助从 406 状态我刚刚在我的 spring 控制器中转换为 Gson,然后我的数据返回到 angularjs 服务(应该完成由 Spring 而不是我)。这就是我所做的
如果有人有更好的解决方案,请告诉我
我无法从控制器获取数据到 angular 服务请检查我的代码任何人建议我做什么
提前致谢
pom.xml
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.4</version>
</dependency>
java控制器
@RequestMapping(value="/getAlluserDetails", method=RequestMethod.GET)
@ResponseBody
public List<Map<String, Object>> getAllUserDetails(){
System.out.println("getAllUserDetails");
ModelMap mav =new ModelMap();
List<Map<String, Object>> listofusers = userServices.getUserData();
System.out.println("listofusers : "+listofusers);
return listofusers;
index.html
app.service("myServices",function($q,$http,$log) {
var deffered = $q.defer();
var responseData;
this.getUsers = function(){
return $http({
method:'GET',
url:'getAlluserDetails.htm'
// data: JSON.stringify(search)
}).then(function(response){
// $scope.users = response.data;
$log.info("samei"+response);
return response;
},function(reason){
$log.info("samei 123err"+reason);
return reason;
});
};
<!doctype html>
<html ng-app="app">
<head lang="en">
<meta charset="utf-8">
<title>AngularJS Routing</title>
<script src="http://code.angularjs.org/1.2.13/angular.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script>
<script type="text/javascript" src="resources/scripts/main.js"></script>
<script type="text/javascript" src="resources/static/services/services.js"></script>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" href="resources/static/css/style.css">
<script type="text/javascript" src="resources/static/controllers/LoginController.js"></script>
<script type="text/javascript" src="resources/static/controllers/UserController.js"></script>
<script type="text/javascript" src="resources/static/controllers/GetUserDetailsController.js"></script>
</head>
<body>
<div class="container" width="100px">
<h2>Medhassu user data upload</h2>
<div ui-view></div>
</div>
在我的浏览器中
response header
内容语言
恩
内容长度
1067
内容类型
text/html;字符集=utf-8
日期
2018 年 2 月 25 日,星期日 15:49:04 GMT
服务器
Apache-Coyote/1.1
request header
接受
application/json、text/plain、/
接受编码
gzip,放气
接受语言
en-US,en;q=0.5
连接
活着
主持人
localhost:8081
推荐人
http://localhost:8081/UserRegistration/
用户代理
Mozilla/5.0 (Windows NT 6.3; W…) Gecko/20100101 Firefox/58.0
HTTP 406 表示提供的响应不被目标接受。
要返回 ModelAndView 使用 Content-Type = text/html
如果是对象(list,map..)/JSON使用Content-Type = application/json
并将请求url更改为http://<context>/getAlluserDetails
None 的转换器或依赖项帮助从 406 状态我刚刚在我的 spring 控制器中转换为 Gson,然后我的数据返回到 angularjs 服务(应该完成由 Spring 而不是我)。这就是我所做的
如果有人有更好的解决方案,请告诉我