Spring MVC url重定向

问题描述 投票:0回答:2

URL重定向出现问题。 URL应该由我的Spring-MVC控制器更改-至少我猜是这样。这个妈让我们考虑这样的控制器:

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping(value="/showLoginForm", method = RequestMethod.GET)
    public String printWelcome(ModelMap model) {
        return "loginView";
    }

    @RequestMapping(value="/verifyLogin", method = RequestMethod.POST)
    public String verifyLogin(@RequestParam String login, @RequestParam String password, ModelMap model) {
        //some stuff here
        return "redirect:/user/showLoginResult";
    }

    @RequestMapping(value="/showLoginResult", method = RequestMethod.GET)
    public String showLoginResultView(){
        return "loginResult";
    }
}

最初,用户输入URL:../user/showLoginForm并通过单击提交按钮来填写表单,请求由ajax发送,数据已发送。

$.ajax({
    url: './verifyLogin',
    method: 'POST',
    data:{
          "login": login,
          "password": password
    },

    error: function(){
        //some stuff to do
    },
    success: function(data){
        //some stuff to do
        $("body").html( data ) //fetching data from request to browser, is this correct?
    }
});

已发送的请求触发了verifyLogin方法的调用,该方法应将URL重定向到:user / showLoginResult,但肯定不会。但是然后调用showLoginResultView方法,它将loginResult视图返回给ajax回调。

要清楚:1.我正在使用Spring 4.0.4.RELEASE2.我已经注册了org.springframework.web.servlet.view.UrlBasedViewResolver实例。

现在的问题:为什么URL不变?

提前感谢

spring url spring-mvc redirect url-redirection
2个回答
2
投票

但肯定不是。但是然后调用showLoginResultView方法

这意味着它确实进行了重定向,并且浏览器遵循了重定向,并且对原始AJAX请求的最终响应将提供给您的AJAX处理程序的成功回调。没有必要更改地址栏中的URL,因为您不是发送常规的HTTP请求,而是发送AJAX请求。

另请参见:Returning redirect as response to XHR request


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.