我有一个Spring MVC应用程序,该应用程序的端点导致重定向-请参见下面的代码。

我注意到,Spring为此重定向返回的HTTP状态代码是307。我的问题是,为什么Spring选择返回307而不是301302

仅仅是在客户端上允许同时使用GETPOST方法,并且就客户端可以执行的操作而言,307是最不被允许的响应的事实,因此Spring将其实现为默认值吗?

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@RequestMapping(value = "/login", method = {RequestMethod.GET, RequestMethod.POST})
public String loginAttemptWithoutCookie() {
    return "redirect:" + "/some/other/url;
}

最佳答案

所有现代浏览器都会自动检测到302

302

实际上,所有在3xx类别中的HTTP响应状态代码都会被考虑
重定向消息,所有现代浏览器都会自动检测到302找到的响应代码并自动处理临时重定向操作

307

实际上是从管理员方307内部重定向
客户端单击购物车项目,然后浏览器将POST发送到/cart-items.html,然后告诉它重定向POST到/purchase-selected-items.php

意思是,Spring试图重定向自定义(视图已经由admin创建)视图,而没有默认重定向

10-07 19:42
查看更多