在点击图像(地图)时填充数据时,我被困在角度方面。
我的主页Home.jsp页面成功显示URL为http://localhost:7001/LocalMarket/。但是当我点击特定的状态图像链接时。它抛出406错误,URL更改为http://localhost:7001/LocalMarket/home.web?statechoice=ME。 我已经调试过,数据从Spring MVC端填充到angular js $ scope.names。我希望数据本身填充在同一页面上。
回到Home.jsp
<script>
var app = angular.module('myApp', []);
function MyController($scope, $http) {
$scope.getPersonDataFromServer = function() {
$http({
method : 'GET'
}).success(function(data, status, headers, config) {
//alert(data);
$scope.names= data;
console.log(data);
}).error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
console.log("error");
});
};
};
</script>
</head>
<body style="text-align: center;" data-ng-app="myApp">
<h4>US map</h4>
<div>
<img src="images/usmap.gif" alt="US MAP" width="529" height="334"
border='0' usemap='#usimage' align="middle">
</div>
<div
data-ng-controller="MyController">
<div >
<map name='usimage'>
<!--- BEGIN: East --->
<area shape='polygon' coords='489,52,502,31,513,32,518,54,490,71' data-ng-click ="getPersonDataFromServer()" href='home.web?statechoice=ME' target="_self" alt='Maine'>
<map>
</div>
<div >
<table border ="1" style="margin-top: 20px;">
<tr style="background-color:lightgray;">
<th>Cities</th>
<tr data-ng-repeat="city in names">
<td>{{city}}</td>
</div>
控制器 - 我在impl类中设置值
@RequestMapping(value = "/home.web", method = RequestMethod.GET, produces = {
"application/xml", "application/json" })
public @ResponseBody List<String> getUSCity() {
String statechoice ="ME";
List<String> msa = new ArrayList<String>();
msa = msaService.getMsaCodes(statechoice);
return msa;
}
我无法确定我是否遗漏了任何东西。 感谢
答案 0 :(得分:0)
当您登录日志data
或$scope.names
时会发生什么?
在错误部分中,将错误对象传递给回调函数,并在出现错误时将其记录下来。这将提供更多可帮助查明问题的详细信息。
答案 1 :(得分:0)
可能是您的REST端点同时生成JSON和XML。 406 HTTP错误是&#34;不可接受&#34;,这意味着客户端请求的接受标头与服务器返回的内容不匹配。默认情况下,$ http服务仅接受text和JSON作为返回类型。尝试删除REST端点的@Produces注释中的application / xml,或查看the $http documentation以获取有关如何更改$ http的默认Accept标头的说明。