gpt4 book ai didi

java - Spring Controller 不将 JSON 数据返回到 Angular http GET 调用

转载 作者:行者123 更新时间:2023-12-02 01:45:12 24 4
gpt4 key购买 nike

我有一个 Spring Controller ,如下所示:

@RestController
public class RaceResultController {

@Autowired
RaceResultImpl raceResultImpl;

@GetMapping("/race")
public ModelAndView hello(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

List<RaceTopResult> raceTopResultList = raceResultImpl.getResults();
ObjectMapper o = new ObjectMapper();
model.addAttribute("races", raceTopResultList);
return new ModelAndView("race");


}
}

然后我在我的 View race.html 中嵌入了一些 Angular 代码:

      <head>
<title>F1 RESULTS 2018</title>
<script


src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> .
</script>
<script
src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
</head>
<body>
<header>
<h1>F1 RESULTS 2018</h1>
</header>
<div ng-app="raceApp" ng-controller="raceCtrl">
<table id="my_table" border = "1">
<tr ng-repeat="race in races">
<td>{{ race.driver }}</td>
<td>{{ race.team }}</td>
</tr>
</table>
</div>

</body>

<script>
var app = angular.module('raceApp', []);
app.controller('raceCtrl', function($scope, $http) {
alert("mini");
$http({
url: "/race",
method: "GET",
dataType: 'json'
}).then(function successCallback(response) {
alert("hi")
$scope.races = response.data;
}, function errorCallback(response) {
alert("bye");
$scope.error = response.statusText;
});
});
</script>

当我在浏览器中点击 /race url 时,它总是转到错误回调 block ,即使当我单独测试 Controller 时也是如此。我可以看到它从服务返回数据,但我无法获取 Angular http 响应中的数据。请帮忙。

谢谢

最佳答案

如果您想获取 json 响应,请执行此操作

@GetMapping("/race")

public List<RaceTopResult> hello(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

List<RaceTopResult> raceTopResultList = raceResultImpl.getResults();
//ObjectMapper o = new ObjectMapper();
//model.addAttribute("races", raceTopResultList);
return raceTopResultList;


}

如果类路径中有 jackson 依赖项,上面的结果将自动转换为 json,如果出现任何错误,请在 Maven 依赖项中查找 jackson

如果您想使用模型数据获取 html View ,请使用此

@Controller //use controller not RestController
public class RaceResultController {

@Autowired
RaceResultImpl raceResultImpl;

@GetMapping("/race")
public ModelAndView hello(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

List<RaceTopResult> raceTopResultList = raceResultImpl.getResults();
// ObjectMapper o = new ObjectMapper();
model.addAttribute("races", raceTopResultList);
return new ModelAndView(model,"race");


}
}

关于java - Spring Controller 不将 JSON 数据返回到 Angular http GET 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com