在jquery中对303状态代码做出反应(防止重定向)

kei*_*bel 12 javascript ajax jquery caching http-status-code-303

当我向某个服务器发送请求时,将发出303响应,然后是请求的响应以及200状态代码.有趣的是,我只在开发人员控制台的网络视图中看到这一点.检查我的$ .ajax()请求的状态代码和响应时,将会有第二个请求的响应,以及200个http状态代码.

问题是似乎第二个请求被缓存(虽然200状态代码),我真的需要它是不可缓存的.因此,我真的想介入使用http 303状态代码进行的转发过程.我希望我的jquery函数检查状态代码,然后发送带有显式头的get请求,告诉服务器不要缓存响应.

好吧,我只是不知道如何做到这一点,因为(如上所述)jQuery.ajax方法将响应转发请求的响应和状态代码(200).

你能帮助我吗?

编辑

10.3.4 303见其他

可以在不同的URI下找到对请求的响应,并且应该使用该资源上的GET方法检索.此方法主要用于允许输出POST激活的脚本以将用户代理重定向到选定的资源.新URI不是最初请求的资源的替代引用.303响应绝不能被缓存,但对第二个(重定向)请求的响应可能是可缓存的.

也许我需要以某种方式阻止用户代理重定向自己,所以我可以做重定向?

或者有没有办法简单地告诉服务器/浏览器不要缓存来自客户端的第二个请求?或者阻止它重定向我的请求?或者至少在重定向之前修改第二个请求?

bad*_*unk 9

300范围内的回应是透明的.AFAIK,Web浏览器不会将它们中的任何一个暴露给javascript.因此,处理303不是一种选择.

您是否尝试cache在ajaxSetup中将属性设置为false?它会在请求中附加时间戳,防止浏览器缓存响应.您也可以自己手动执行此操作.浏览器应该将第一个请求URL与第二个响应匹配