【发布时间】:2011-06-17 17:39:44
【问题描述】:
response.redirect 总是一个 http GET 响应吗?或者它可以是 POST?....
【问题讨论】:
-
您需要给我们一些背景信息。什么是编程语言;
response等是什么 -
它的 asp.net,谢谢 然后将其添加到您的问题中。
标签: asp.net http redirect get response
response.redirect 总是一个 http GET 响应吗?或者它可以是 POST?....
【问题讨论】:
response等是什么
标签: asp.net http redirect get response
Response.redirect 仅使用 GET..它不能是一个帖子..介于两者之间的语言是什么?
重定向是发送给客户端的 Http 响应。响应包含一个名为 Location 的 Http Header,它必须包含一个绝对 url。
然后客户端针对这个 url 发出一个 GET 请求。
所以,不,POST 不是一个选项。
【讨论】:
在大多数 API 中,标准重定向实现执行 302,这确实是每个定义的 GET。根据您熟悉 ASP.NET 的问题历史,我也会添加 Java Servlet 的示例。
ASP.NET:
Response.Redirect("http://google.com");
小服务程序:
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");
小服务程序:
response.setStatus(307);
response.setHeader("Location", "http://google.com");
请注意,这将在请求最终用户确认将 POST 数据发送到另一个位置的普通客户端上发出安全/确认警告。
【讨论】:
response.setHeader("Location","other server site.com")发送请求参数
假设您使用的是 asp.net,也许 server.transfer 可能是您正在搜索的内容。您可以将处理传递到另一个页面并保持表单状态,而不是将新 url 发送回客户端。
【讨论】:
与这里的大多数答案相反,重定向的 HTTP 请求是 only GET if
【讨论】: