AngularJS - $http 无法加载资源:服务器以状态 404 响应



我使用 Angularjs 创建了单页应用程序。我在浏览页面时遇到以下问题。

问题1:

下面$http调用命中 Spring 控制器,处理成功,这个 spring 方法返回 bean。

@RequestMapping(value="/getStatus",method=RequestMethod.GET)

我从服务器端得到响应后,它会进入JS方法中的错误块

无法加载资源:服务器响应状态为 404(未找到(->/getStatus

为什么成功处理后会进入错误块?

问题2:

即使我使用state.go从错误块导航页面,Acknowledgement.jsp也会呈现并{{status}}-->打印为空

我在AngularJs和UI路由器上挣扎了2天。请帮忙

进度.jsp

<div ng-controller="myctrl as mydata" ng-init="getStatus()">
// progress icon here
</div>

我的ctrl.js

$scope.getStatus = function() {
$http({
url: CONTEXT_PATH + 'getStatus',
method: "GET",
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data, status, headers, config) {
console.log("success block : "+status);
$scope.paymentStatus = data.epaymentStatus;
$state.go("Acknowledgement");
}).error(function (data, status, headers, config) {
console.log("failure block : "+status);
$scope.paymentStatus = data.epaymentStatus;
$state.go("Acknowledgement");
});
};

致谢.jsp

<script type="text/javascript">
console.log("Status :: "+status);
// Here status printing as SUCCESS
</script>
<div ng-controller="myctrl as mydata" id="RESPONSE">
{{status}} --> printing empty
<div class="row row-space" ng-if="status == 'SUCCESS'">
</div>
</div>

进程控制器.java

@RequestMapping(value="/getStatus",method=RequestMethod.GET)
public ProcessBean getStatus(HttpServletRequest 
httpRequest, HttpServletResponse httpResponse) {
ProcessBean processBean = new ProcessBean();
try {
// Business process takes place here
processBean.setStatus("SUCCESS");
httpRequest.setAttribute("processStatus", "S");
} catch(Exception e) {
processBean.setStatus("FAILURE");
httpRequest.setAttribute("processStatus", "S");
e.printStackTrace();
}
return processBean;
}

通过在方法中添加@ResponseBody解决了我的第一个问题。

@RequestMapping(value="/getStatus",method=RequestMethod.GET)
public @ResponseBody ProcessBean getStatus(HttpServletRequest 
httpRequest, HttpServletResponse httpResponse) {
ProcessBean processBean = new ProcessBean();
try {
// Business process takes place here
processBean.setStatus("SUCCESS");
httpRequest.setAttribute("processStatus", "S");
} catch(Exception e) {
processBean.setStatus("FAILURE");
httpRequest.setAttribute("processStatus", "S");
e.printStackTrace();
}
return processBean;
}

最新更新