【问题标题】:406 err while data returning from spring java controller to angularjs service数据从spring java控制器返回到angularjs服务时出现406错误
【发布时间】:2018-08-05 10:37:12
【问题描述】:

我一直在从控制器获取数据到角度服务,请检查我的代码任何人建议我该怎么做

提前致谢

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>

在我的浏览器中

响应标题

内容-语言
zh 内容长度
1067 内容类型
文本/html;charset=utf-8 日期
格林威治标准时间 2018 年 2 月 25 日星期日 15:49:04 服务器
Apache-Coyote/1.1

请求头

接受
应用程序/json,文本/纯文本,/ 接受编码 gzip,放气 接受语言 en-US,en;q=0.5 连接
活着 主机
本地主机:8081 推荐人 http://localhost:8081/UserRegistration/ 用户代理
Mozilla/5.0 (Windows NT 6.3; W…) Gecko/20100101 Firefox/58.0

【问题讨论】:

    标签: javascript angularjs spring-mvc http-status-code-406


    【解决方案1】:

    HTTP 406 表示提供的响应不被目标接受。

    要返回 ModelAndView,请使用 Content-Type = text/html

    如果是对象(list,map..)/JSON 使用Content-Type = application/json 并将请求url 更改为http://&lt;context&gt;/getAlluserDetails

    【讨论】:

    • 感谢您的回复....我已经在 angularjs 服务中尝试过 content type= app/JSON 但没有用,您能否更具体地说明在哪里使用 contenttype 我只想返回列表而不是查看所以我不想使用 modlandview。你说的网址我没听懂
    【解决方案2】:

    在我的数据返回 angularjs 服务之前,我刚刚在我的 spring 控制器中转换为 Gson 的 406 状态没有任何转换器或依赖项有帮助(这应该由 Spring 而不是我来完成)。这就是我所做的

    如果有人有更好的解决方案,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2015-11-15
      • 2013-09-13
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多