我正在使用MEAN堆栈来开发我的应用程序。应用程序在chrome中工作正常,但是当在IE中打开页面时,当用户请求页面时,我从服务器获得304状态。因为这个缓存页面被提供给用户。
有趣的是,如果我打开IE开发人员工具栏&然后选择网络选项卡并记录各种请求,应用程序开始正常工作。我开始从服务器获得200响应。
到目前为止,我已尝试过:inner
和此:
app.disable('etag');
但这两个选项对我都不起作用。
答案 0 :(得分:0)
您是否尝试过设置此处所述的缓存标头:https://stackoverflow.com/a/9886945/442472。
Expires: Tue, 03 Jul 2001 06:00:00 GMT
Last-Modified: {now} GMT
Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate
我认为etag本身不允许浏览器理解服务器端所需的缓存策略应该是什么。 etags实际上只是一种通过校验和来识别服务器端资源的方法。
答案 1 :(得分:0)
要回答我自己的问题,这就是我在客户端(Angular Side)添加的内容。 我基本上将日期时间作为查询字符串参数添加到每个外出的AJAX请求中。
$httpProvider.interceptors.push(function ($q) {
return {
'request': function (config) {
config.url = config.url + '?token=' + new Date().toLocaleString() ;
return config;
}
}
});