当前位置: 首页 > 知识库问答 >
问题:

406数据从Spring java控制器返回到angularjs服务时出错

田博超
2023-03-14

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

提前谢谢

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;

指数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>

在我的浏览器里

响应标头

内容语言en Content Length 1067 Content Type文本/html;charset=utf-8日期2018年2月25日15:49:04 GMT服务器Apache Coyote/1.1

请求标头

Accept应用程序/json,text/plain,/Accept编码gzip,deflate Accept语言en-US,en;q=0.5连接保持活动主机本地主机:8081 Refererhttp://localhost:8081/UserRegistration/用户代理Mozilla/5.0(Windows NT 6.3;W…)Gecko/20100101 Firefox/58.0

共有2个答案

司空健
2023-03-14

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

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

姬振
2023-03-14

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

要返回ModelAndView,请使用内容类型=文本/html

如果是对象(列表、贴图..)/JSON使用内容类型=应用程序/JSON,并将请求url更改为http://

 类似资料:
  • 问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码

  • 问题内容: 我在Angular中有一个服务,该服务使用我的API来获取用户信息并将其提供给控制器。设置如下: 在我的控制器中,我将其包含为: 这不会返回任何数据,而如果我将相同的服务功能放在控制器本身中,它将返回正确的值。我在这里想念什么?以前从未在Angular中使用过DI / Services,因此在某个地方可能是一个简单的错误。 我需要确保该服务在控制器加载 之前 返回数据。如何做到这一点

  • 问题内容: 我已经阅读了几篇有关angularjs实体正确用法的文章:服务,工厂,控制器和指令。 我特别关心的是控制器和服务的比较。但是,没有一个帖子告诉我什么是控制器可以执行服务不能执行的操作,反之亦然。 可以列出它吗?或者仅仅是在angular的用法上规范? 问题答案: 控制器 通常用于绑定视图。控制器管理视图的生命周期,应将其视为视图控制器。将为视图的每个实例创建一个新的控制器,这意味着,如

  • 问题内容: 我对AngularJS相当陌生,并且从模态对话框服务返回数据时遇到问题。基本上,我复制了Dan Wahlin的服务http://weblogs.asp.net/dwahlin/archive/2013/09/18/building-an- angularjs-modal- service.aspx, 并从我的控制器调用它。 然后我有我的部分,像这样: 这个模态被这样调用: 所以我的问题

  • 问题内容: 当使用AngularJS服务尝试在两个控制器之间传递数据时,我的第二个控制器在尝试从该服务访问数据时始终会收到未定义的信息。我猜这是因为第一个服务执行的是$ window.location.href,并且我认为这正在清除服务中的数据?我是否可以将URL更改为新位置,并将数据保留在第二个控制器的服务中?当我运行下面的代码时,第二个控制器中的警报始终未定义。 app.js(定义服务的位置)

  • 问题内容: 我将慢速的WebSockets服务器包装在AngularJS服务中,然后从我的控制器调用该服务。如果我将回调链接到回调上,则一切正常,所有UI均异步更新。 当我尝试用来清理一团糟的回调时,似乎我的延迟请求从未被调用。我熟悉从Python的Twisted派生的概念,因此我认为从概念上讲一切都应该起作用-但事实并非如此。 这是我能想到的最短的例子,慢速的WebSockets服务器是使用se