对大多数HTTP get请求的响应正在IE Edge中缓存。 据我所知,它在其他浏览器中不会发生。 我修复了旧版本,但我怎么能在Angular2上做呢?
任何帮助将不胜感激。
答案 0 :(得分:0)
常见的解决方法是将随机查询参数值添加到请求URL。
您可以创建一个自定义Http
实现,为每个请求执行此操作。
@Injectable()
class NoCacheHttp extends Http {
constructor(_backend: ConnectionBackend, _defaultOptions: RequestOptions) {
super(_backend, _defaultOptions);
}
get(url: string, options?: RequestOptionsArgs) : Observable<Response> {
let newUrl = /* add some random or incrementing number query parameter to URL */
return super.get(newUrl, options);
}
post(...)
...
}
@NgModule({
imports: [HttpModule],
export: [HttpModule],
providers: [{provide: Http, useClass: NoCacheHttp}]
})
export class NoCacheHttpModule {}
@NgModule({
imports: [BrowserModule, NoCacheHttpModule],
declarations: [AppModule],
bootstrap: [AppModule]
})
export class AppModule {}