现象描述:
通过post方式请求一个url(形如:http://test.com/api?a=aa&b=bb),发现此请求返回301,如下图所示:
观察重定向之后的url发现多了一个斜线,进一步可以发现在上面的请求之后有一个以get方式发出的新的请求,如下图所示:
值得注意的是,这两次请求过程中,服务器端都无法接收客户端post的数据。
解决办法:
将url补充完整,改成:http://test.com/api/?a=aa&b=bb 或者 http://test.com/api/index.php?a=aa&b=bb
原因探究:
原先的url(http://test.com/api?a=aa&b=bb)缺少了一个横线,web server(此例中为Apache)无法正确识别从而引发重定向,导致了301状态码的返回和二次请求的发生。
引申阅读:
有关 url rewrites 和 url redirecthttp://moz.com/blog/url-rewrites-and-301-redirects-how-does-it-all-work 。