Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE11为无缓存请求返回304_Javascript_Internet Explorer 11_Http Caching_Fetch Api - Fatal编程技术网

Javascript IE11为无缓存请求返回304

Javascript IE11为无缓存请求返回304,javascript,internet-explorer-11,http-caching,fetch-api,Javascript,Internet Explorer 11,Http Caching,Fetch Api,我正在开发一个从API获取数据的web应用程序。API在大多数资源上都包含缓存头,通常情况下,这是可以预期的。但是,当应用程序通过POST、PUT、DELETE修改资源时,同一URI的GET缓存必须无效。这在中进行了描述 在我们的测试中,IE11似乎并不尊重这一点,而是返回了一个304 not Modified响应的缓存资源。为了解决这个问题,在状态更改请求之后的下一个get请求中,我尝试添加请求头Cache Control:No Cache,No Store 我仍然得到一个304未修改的缓存响

我正在开发一个从API获取数据的web应用程序。API在大多数资源上都包含缓存头,通常情况下,这是可以预期的。但是,当应用程序通过POST、PUT、DELETE修改资源时,同一URI的GET缓存必须无效。这在中进行了描述

在我们的测试中,IE11似乎并不尊重这一点,而是返回了一个304 not Modified响应的缓存资源。为了解决这个问题,在状态更改请求之后的下一个get请求中,我尝试添加请求头
Cache Control:No Cache,No Store

我仍然得到一个304未修改的缓存响应

我怎样才能让IE 11忽略它的缓存并再次转到服务器?这一切在Chrome中都能正常工作


这是相关的,我正在使用

正如我在评论中提到的,您必须尝试以下标题:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

如果响应仍然缓存在IE中,则添加该头的可能重复不会产生任何影响,它将不知道新头的情况。清除IE中的缓存,然后重试测试。我已将其添加到请求标头中。响应标题不会更改。必须-revalidate作为响应指令列出。我说的是请求头。通常,我希望缓存响应,只是在某些情况下,在客户机上我知道它是旧的,并且希望从server@AJackson理解。你不能这样做。您无法控制/处理客户端的浏览器请求。您所能做的一切-发送响应头,告诉浏览器我们必须刷新数据,否则,如果您可以修改客户端的请求(通过修改前端请求)你可以发送一些自定义标题,然后你可以在后端实现一些检测系统,这些系统会用修改后的响应标题响应你。当我在客户端编码时,我可以控制浏览器的请求。看我的问题,我正在使用javascript和fetch。我可以添加任何我想要的请求头。我正在尝试找出可以用来告诉浏览器忽略其自身缓存的请求头。根据您的回答,我尝试了请求
缓存控制:无缓存,无存储Pragma:no cache
,这似乎有效,因此我将接受它