在我的jQuery函数中,我正在重定向使用window.location.href,如下所示:
window.location.href = "${pageContext.request.contextPath}/redirectUser.ajax?login="+response.result.name;
它工作正常,但我在浏览器中看到这样的字符串:
http://localhost:8080/task7/redirectUser.ajax?login=user
我的控制器也使用GET
@RequestMapping (value="/redirectUser.ajax",method = RequestMethod.GET)
public String forwardUserToUsersPage(ModelMap model, HttpServletRequest req){
User foundedUser = userDao.findByLogin(req.getParameter("login"));
req.getSession().setAttribute("user", foundedUser);
return "userPage";//to WEB-INF/jsp/userPage.jsp
}
如何重写这部分应用程序以便用户POST方法重定向并在控制器中处理?
这是接收来自servler的回复的函数(实际上是函数的一部分)
function doAjaxPost() {
// get the form values
var queryString = $('#loginform').formSerialize();
$.ajax({
type: "POST",
url: "${pageContext. request. contextPath}/loginUser.ajax",
data: queryString,
//"name=" + name + "&pswd=" + pswd,
success: function(response){
// we have the response
var delay = 1500;
if (response.status == "OK_USER") {
$('#error').html('');
$('#info').html("Login exists, password is correct everything will be fine.<br> Redirect to User's page");
//var delay = 3000;
setTimeout(function() {
window.location.href = "${pageContext.request.contextPath}/redirectUser.ajax?login="+response.result.name;
}, delay);
}
....
那么如何使用POST方法使用jQuery或其他方法重定向?
答案 0 :(得分:1)
我看到的最快捷方式:
创建一个<form>
节点,将其action
设置为正确的网址method="post"
,并使用所需参数(在<input>
字段中)填充,然后调用{{ 1}}。
e.g。 :
.submit()