是response.redirect总是一个http GET响应?或者它可能是POST?....
答案 0 :(得分:4)
在大多数API中,标准重定向实现执行302,实际上是每个定义GET。根据您的问题历史,您熟悉ASP.NET,但我也会为Java Servlet添加示例。
ASP.NET:
Response.Redirect("http://google.com");
的Servlet
response.sendRedirect("http://google.com");
它隐式地将响应状态设置为302,并将Location
标头设置为给定的URL。
当当前请求是POST请求并且您想要使用POST重定向时,则需要307重定向。标准API不提供此功能,但通常只需设置相应的响应状态和标头即可。
ASP.NET:
Response.Status = "307 Temporary Redirect";
Response.AddHeader("Location", "http://google.com");
的Servlet
response.setStatus(307);
response.setHeader("Location", "http://google.com");
请注意,这会在普通客户端发出安全/确认警告,请求最终用户确认将POST数据发送到其他位置。
答案 1 :(得分:2)
假设您使用的是asp.net,也许server.transfer可能就是您要搜索的内容。您可以将处理传递到另一个页面并保持表单状态,而不是将新URL发送回客户端。
答案 2 :(得分:1)
Response.redirect只使用GET ..它不能是一个帖子......而且在什么语言之间?
答案 3 :(得分:1)
重定向是发送给客户端的Http响应。响应包含一个名为Location的Http Header,它必须包含一个绝对url。
然后,客户端针对此URL发出GET请求。
所以,不,POST不是一个选项。
答案 4 :(得分:0)
与此处的大多数答案相反,重定向的HTTP请求仅 如果...