为什么jQuery.ajax在POST调用后会遵循重定向?

时间:2014-10-02 10:30:27

标签: jquery ajax http

HTTP标准禁止在POST请求后遵循重定向,无需用户确认。我发出jQuery.ajax方法POST请求,服务器通过重定向来回答。

浏览器使用GET方法重新发出请求?为什么?用GET而不是POST发出请求通常没有意义。

我尝试使用Firefox 32.0.3

2 个答案:

答案 0 :(得分:0)

在POST查询后需要重定向以中止输入和重新发送用户的信息。对于您的任务,您必须在POST查询后使用服务器端的状态代码302或303。如果浏览器看到这样的状态代码,重定向将不会释放!

答案 1 :(得分:0)

JQuery依赖于XmlHTTPRequest,它会自动跟随重定向,不管它是否相似。 (在XmlHTTPRequest中允许更多控制的功能请求现在已有很多年了,但显然,规范作者和浏览器供应商并不想去那里)。

如果您不希望重定向的请求使用GET,则必须使用HTTP状态代码307或308。