清除 IE11 上的请求缓存 - POST 保存为 GET

Clearing request cache on IE11 - POST getting saved as a GET

除了专门针对清除 IE11 浏览器中的缓存之外,此问题与 非常相似。

无论我如何清除我的history/cache(clearing history, Network Tab > clear cache, Network tab > always refresh from server)提交新请求时,我看到了这条消息 Received (from cache) (This resource was loaded from the cache and it was not affected by network latency) 的响应。

我应该补充一点,路由应该是一个 POST 请求,但它作为 GET 请求保存在浏览器中。这只发生在 IE11 浏览器中。 req/res headers 不见了。

在两个不同的场合,它确实以 POST 的形式正确地通过网络发出请求,但我已经尝试了大约 100 次。我不知道为什么它适用于这两个特定实例。但是每个后续请求都会被缓存拦截,并且 returns 一个没有 headers 的 200 GET。这在 Chrome/Firefox(无缓存,奇怪的网络响应)中总是工作正常。

所以这实际上是两个不同的问题。 1. POST 被保存为 IE11 的 GET 和 2. 清除 IE11 的请求缓存不起作用。

我想避免添加 headers to solve this issue,我主要想找到一种方法来清除 IE11 浏览器缓存,因为初始 POST 请求似乎有效,只是任何后续请求使用保存的缓存(出于某种原因作为 GET)。也就是说,找到并修复 POST 被缓存为 GET 的原因也会为我提供一条前进的道路。

使用 whatwg-fetch 填充 IE 并使用 babel-polyfill 用于 Promises。

** 尝试通过开发控制台发送请求。 chrome/IE 浏览器之间的结果相同(在 Chrome 中有效,在 IE SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3. 中出现错误)

这是我提出的要求:

var options = {
    "body": "{\"email\":\"myemail@myemail.com\",\"pass\":\"mypassword\"}",
    "credentials": "include",
    "headers": {
        "Content-Type": "application/json; charset=utf-8"
    },
    "method": "POST",
    "mode": "cors"
}


fetch("https://locally-running-host:9876/some-route/logmein", options).then(function(response) { return response.json() }).then(function(myJson) { console.log(myJson)})

跟进 - 已解决 - 这是一个证书问题,主要是由于我的工作站缺乏权限和我工作的网络受限。两者都通过干扰权限和每个 @deepak-msft

的重置来解决

您是否尝试在使用 IE 11 的任何其他计算机上检查此问题?如果不是,您可以检查以验证此问题是否与特定机器有关。

如果它在装有 IE 11 的另一台机器上正常工作,那么您可以尝试重置您的 IE 浏览器。检查您是否使用了 IE 浏览器的最新更新。

要重置IE浏览器,您可以进入Internet选项->高级->重置IE。