如何使用POST而不是GET重定向jQuery

时间:2013-03-04 08:43:10

标签: jquery

在我的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或其他方法重定向?

1 个答案:

答案 0 :(得分:1)

我看到的最快捷方式:

创建一个<form>节点,将其action设置为正确的网址method="post",并使用所需参数(在<input>字段中)填充,然后调用{{ 1}}。

e.g。 :

.submit()