当前位置: 首页 > 面试题库 >

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

杭英杰
2023-03-14
问题内容

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

问题在于,似乎第二个请求正在缓存(尽管状态码为200),我真的需要它不可缓存。因此,我真的很想干预使用http
303状态html" target="_blank">代码进行的转发过程。我希望我的jquery函数检查状态码,然后发送带有显式标头的get请求,该标头告诉服务器不要缓存响应。

好吧,我只是不知道该怎么做,因为(如上所述),jQuery.ajax方法将使用转发的请求的响应和状态码(200)进行响应。

你能帮助我吗?

编辑

10.3.4 303查看其他

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

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

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


问题答案:

300范围内的响应是透明的。AFAIK,网络浏览器不会将其中任何一个暴露给javascript。因此,处理303不是一个选择。

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



 类似资料:
  • 我正在使用中的向已定义的后端发送请求。我想使用作为断路器,但只用于一种用例:如果后端响应代码,我的假客户机应该等待一个小时,直到它再次联系到真正的后端。在此之前,应该执行回退方法。 我必须如何配置我的Spring Boot(1.5.10)应用程序才能实现这一点?我看到了许多配置的可能性,但只有很少的例子--在我看来--不幸的是,没有围绕用例解决。

  • 如何在功能组件中使用preState和use效果?我被告知要更新类组件到功能组件,我被困在了组件的didUpdate部分

  • 在我的工作场所,我们使用放心2.9发送RestAPI请求,我得到了一个包含响应正文和状态代码的有效输出,即使状态代码是500,402。 但是唯一不起作用的情况是错误303。请参阅其他,我得到了方法抛出org.apache.http.client.ClientProtocolException异常,我无法以这种方式解析信息,所有其他状态代码都返回状态代码和正文,只有303抛出异常。API不是问题,因

  • 问题内容: 我有一个下面的HashMap(假设它有10,0000个元素) ========================== 我需要Java代码来防止在HashMap 中出现以下情况。 1> 2> 希望它清除。我们将不胜感激提供的Java代码。(由于我可以将任何重复项添加到现有地图中,因此需要通用解决方案) 问题答案: 你可以用一个类,它代表,以及其他的方法你使用。这种方法是一种浪费,但安全的,

  • 问题内容: 我现在将脚本更改为jquery。这是我的旧javascript: 我现在想将其更改为jquery-ajax: 像在旧脚本中一样,如何测试请求返回的状态码(和responseText)? 问题答案: 试试这个: 要么:

  • 我正在实现一个kiosk模式应用程序,我已经成功地使应用程序全屏显示,在4.3之后没有状态栏出现,但在4.3和4.4中无法隐藏状态栏,因为当我们在屏幕顶部向下滑动时,状态栏会出现。 我已经试着在 在清单中指定全屏主题 设置窗口标志ie setFlags setSystemUi可视性 可能重复,但未找到具体解决方案 永久隐藏Android状态栏 最后的事情我想要的是,如何隐藏状态栏永久在一个活动??