小编sto*_*lli的帖子

如果无法选择其他查询字符串参数或使用POST,如何避免Internet Explorer 11中的AJAX缓存

我意识到这个问题已被提出,但在现代REST实践中,此问题的先前迭代及其答案都不准确或充分.需要对这个问题给出明确的答案.

问题是众所周知的,IE(甚至11)缓存AJAX请求,这真的很愚蠢.每个人都明白这一点.

什么是容易理解的是,没有对以前的答案是足够的.SO上此问题的每个前一个实例都标记为:

1)对每个请求使用唯一的查询字符串参数(例如unix时间戳),以使每个请求URL唯一,从而防止缓存.

- 要么 -

2)使用POST而不是GET,因为IE不会缓存POST请求,除非在某些特殊情况下.

- 要么 -

3)使用服务器传递的"cache-control"标头.

IMO在许多涉及现代REST API实践的情况下,这些答案都不充分或不实用.REST API将具有完全不同的POST和GET请求处理程序,行为完全不同,因此POST通常不是GET的适当或正确的替代方法.同样,许多API都有严格的验证,并且由于多种原因,在提供他们不期望的查询字符串参数时会产生500或400个错误.最后,我们经常与第三方或其他不灵活的REST API接口,我们无法控制服务器响应提供的标头,并且添加缓存控制标头不在我们的能力之内.

所以,问题是:

在这种情况下,是否真的没有什么可以在客户端完成,以防止IE缓存AJAX GET请求的结果?

ajax internet-explorer caching

66
推荐指数
1
解决办法
3万
查看次数

如何在通过Karma运行时调试PhantomJS

我通过Jasmine,Karma和各种浏览器进行测试.我目前正在调试一个仅在PhantomJS中失败的测试.

我想调试这个调用,所以我在karma中设置了一个自定义PhantomJS启动器,它在调试端口打开的情况下运行它.

我可以通过该端口访问Chrome中的远程调试器,但是,它似乎对我的任何测试文件一无所知.它报告"about:blank"和"localhost:9876"(Phantom正在击中的karma服务器),但是当我尝试调试该位置时,它没有显示任何源文件或Jasmine规范文件.

有没有人见过这种行为?我已经阅读了关于远程调试功能的PhantomJS文档,他们没有对这个问题有所了解,AFAIK.

remote-debugging jasmine phantomjs karma-runner

25
推荐指数
1
解决办法
6817
查看次数