当我向某个服务器发送请求时,会出现303响应,然后是请求的响应以及200状态码。
有趣的是,我只在我的开发者控制台的网络视图上看到这个。在检查我的$.ajax()请求的状态代码和响应时,将有第二个请求的响应,以及200 http状态代码
问题是,第二个请求似乎正在被缓存(虽然有200个状态代码),我真的需要它是不可缓存的。
因此,我真的很想干预http 303状态码发生的转发过程。我希望jquery函数检查状态代码,然后发送带有显式头的get请求,告诉服务器不要缓存响应
嗯,我只是不知道怎么做,因为(如上所述)jQuery.ajax方法将用转发请求的响应和状态代码(200)进行响应
你能帮我吗
编辑
10.3.4 303见其他
对请求的响应可以在不同的URI和
应该使用该资源上的GET方法检索。这种方法
存在主要是为了允许后激活脚本的输出
将用户代理重定向到选定的资源。新URI不是一个
将引用替换为最初请求的资源。303
不能缓存响应,但必须缓存对第二个响应的响应
(重定向)请求可能是可缓存的
也许我需要以某种方式阻止用户代理重定向自己,以便我可以执行重定向
或者有没有一种方法可以简单地告诉服务器/浏览器不要缓存来自客户端的第二个请求?或者阻止它重定向我的请求?或者至少在重定向之前修改第二个请求
300范围内的响应是透明的。顺便说一句,web浏览器不会向javascript公开它们中的任何一个。因此,处理303不是一个选项
您是否尝试过在ajaxSetup中将缓存属性设置为false?它将向请求附加时间戳,防止浏览器缓存响应。您也可以自己手动完成。浏览器应将第一个请求url与第二个响应相匹配