Angular2:对HTTP get请求的响应正在IE中缓存

时间:2016-12-06 05:12:42

标签: internet-explorer angular caching get httprequest

对大多数HTTP get请求的响应正在IE Edge中缓存。 据我所知,它在其他浏览器中不会发生。 我修复了旧版本,但我怎么能在Angular2上做呢?

任何帮助将不胜感激。

1 个答案:

答案 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 {}