【问题标题】:Clearing request cache on IE11 - POST getting saved as a GET清除 IE11 上的请求缓存 - 将 POST 保存为 GET
【发布时间】:2020-04-20 06:21:05
【问题描述】:

这个问题与this post 非常相似,只是专门针对清除IE11 浏览器中的缓存。

无论我如何清除历史记录/缓存(清除历史记录,Network Tab > clear cacheNetwork 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 标头。

在两个不同的情况下,它实际上是否通过网络正确地作为 POST 发出请求,但这是我尝试过的大约 100 次。我不知道为什么它适用于这两个特定实例。但是每个后续请求都会被缓存拦截并返回一个没有标头的 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 浏览器的最新更新。让我们知道您的测试结果。
  • @Deepak-MSFT - 是否有“重置”IE 浏览器的最佳方法?这是否涉及卸载/重新安装或只是 Internet 选项 > 高级中的“重置 IE 设置”?
  • 您一直在暗示“请求被保存为 GET”,但这没有多大意义。当然请求没有被缓存; content / 资源是。那里没有 GET 与 POST 的概念。奇怪的是,您永远不应该获得 POST 请求的缓存结果。这太荒谬了(并且违反了 HTTP 规范)。响应的标头是什么?
  • 并且清除缓存不是解决方案,而是一种破解;正确识别不可缓存的资源是解决方案。

标签: internet-explorer internet-explorer-11 browser-cache


【解决方案1】:

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

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

要重置IE浏览器,你可以到Internet选项->高级->重置IE。

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2023-03-28
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2011-12-04
    • 2015-12-16
    • 2017-10-20
    相关资源
    最近更新 更多