清除 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。
除了专门针对清除 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。