2011-02-11 92 views
1

我在一个页面上将我重定向到我自己的web服务器(www.myserver.com),但请求不是一个GET,而是一个POST。浏览器可以通过POST重定向到一个url?

起初www.myserver.com无法处理请求,因为我只有一个处理“GET /”的路由处理程序。当我意识到它可能是POST重定向(在他们的指南中阅读它)时,我为“POST /”创建了一个路由处理程序,并且该页面被提供。

纠正我,如果我错了,所以浏览器可以重定向到一个url与POST?

回答

2

答案是YES,但浏览器应该提示用户。 302不允许使用GET和HEAD,但允许307使用POST。从HTTP RFC:

307临时重定向

所请求的资源所在 暂时下一个不同的URI。 由于有时重定向可能会被修改为 ,客户端SHOULD 将继续使用Request-URI来处理将来的请求。该响应仅在 可缓存(如果由 缓存控制或Expires标头字段指示)。

临时URI应该由 响应中的位置字段给出。 除非请求方法是HEAD, 响应应该 包含具有 超链接到新的URI(多个)短超文本注释的实体,由于 许多预HTTP/1.1用户代理不 明白307个状态。因此, 该笔记应该包含 信息,用户需要在 的URI上重复原始请求的 URI。

如果307个状态码被接收在 响应于其他比GET 或HEAD的请求,用户代理必须不 自动重定向请求 除非其可通过 用户确认,因为这可能会改变 条件下,请求发出 。

您使用的浏览器是?

+0

我正在使用Chrome – ajsie 2011-02-11 08:35:14

0

您可以使用指向页面的<form>标记创建页面,然后在页面加载时使用Javascript提交表单。

+0

但我不是在谈论窗体,而是POST重定向。 – ajsie 2011-02-11 03:46:57

相关问题