现在我的ajax电话:
$.ajax({
type: "POST",
url: contextPath +"/action",
cache:false,
dataType: 'text',
data: {Id:Id},
success: function(Result){
alert("in success ***");
dialog.dialog("close");
window.location.href = Result;
} ,
error: function(Result){
alert("in error");
}
});
我的控制器代码:
@RequestMapping(value="/action", method=RequestMethod.POST)
@ResponseStatus(value=HttpStatus.OK)
public @ResponseBody ModelAndView getApplyTemplatePage(@RequestParam("Id")int cId){
System.out.println("In apply template controller");
System.out.println("the value of id "+cId+" hostname"+hostName+"templateName"+tempName);
return new ModelAndView("applyTemplate");
}
现在我想重定向到 applyTemplate.jsp页面。 我的要求是通过ajax调用如何重定向到另一个 jsp页面?
答案 0 :(得分:1)
您可以在spring中发送带有位置标头的ResponseEntity,并相应地重定向。
public ResponseEntity<?> getApplyTemplatePage(@RequestParam("Id") int cId, UriComponentsBuilder b) {
UriComponents uriComponents = b.path("/applyTemplate.jsp").build();
HttpHeaders headers = new HttpHeaders();
headers.setLocation(uriComponents.toUri());
return new ResponseEntity<Void>(headers, HttpStatus.OK);
}
在ajax调用中,您可以获取位置标头并相应地重定向。
success: function(data, textStatus, xhr) {
window.location = xhr.getResponseHeader("Location");
}