angurlarjs1.5.5 ui-view加载模板被替换导致空白(cookie/flashcookie.swf )flash.js 劫持问题导致 页面闪顿问题

angurlarjs1.5.5 ui-view加载模板被替换导致空白(cookie/flashcookie.swf )

参考网站:https://www.youyong.top/article/1158f8b6782fb


angurlarjs 网络劫持 请求头

赞赏 2017-04-20


在windows系统的某些网络下,ui-view加载模板被替换成如下的一些内容(详情见图片)
setTimeout("location.replace(location.href.split(\"#\")[0])",2000); http://10.19.99.18:89/cookie/flash.js
http://10.19.99.18:89/cookie/flashcookie.swf setTimeVal("1492516222493", "308482826");setURL("10.19.99.18");supFlash("887385639");
导致页面中用这块模板的地方空白,强刷一下就又好了,不过强刷多次,还是会出现!

angurlarjs1.5.5 ui-view加载模板被替换导致空白(cookie/flashcookie.swf )


只是在window系统下,某些网络中会出现,为什么这么说?

因为无论在公司还是在家里,mac下没有问题,在家里windows下也没有问题,在公司里window下就有问题,window下google chrome和edge都有问题。而且找了一些朋友测试,有几个windows下也有问题。


我这里加载不到上图中的flash.js, 网上找了一个和我问题差不错的flash.js。部分代码从下图,

从图中也可以看出为什么只有window系统中会出现这个

来自:(https://www.v2ex.com/t/327688)



抓包发现的确是服务端返回的,但后端没有访问日志。提工单询问服务器厂商,他们也没有做拦截。

这样看来就有点劫持的味道了,问题是怎么只劫持ui-view加载的模板,ng-include进来的模板就没有劫持。

【对比ng-include的请求和ui-view的请求,发现Accept是不同的】

ng-include的是:Accept:application/json, text/plain, */*


而ui-view 的是 Accept:text/html



应该是这样的,劫持,基本劫持的是html页面,如果accept 为application/json,他的理解就是json而不是html, 而 accept为text/html时,自然就被劫持了。


但只是知道了这个,仍然不知道怎么去改,因为这请求时ui-view里面封装的,不大好改。


解决办法:


升级

angularjs升级到1.6.3,cookie也升级到1.6.3, ui-router升级到0.4.2  。

升级后再看请求头里面的Accept,Accept:application/json, text/plain, */*

页面也不空白了。


但是

最外层的index.html还是会被劫持,强刷几次页面,还是会去请求一个flash.js,往往请求不到会阻塞页面加载,如下图,阻塞了2s。


刷新 csdn的博客也会请求flash.js


刷新 bootstrap中文网站也会请求flash.js


刷新 https的站点 https://www.baidu.com https://www.google.com.hk 都没有问题。


综上是我的网络请求被劫持了。

终极办法,全站得改为https的了。



自己的网站改为https,可以,但访问其他http的网站,仍然会请求这个flash.js, 会卡2s,卡2s是真不爽,怎么让不加载这个flash.js那,参考这篇经验 :

网络被劫持了 总去请求http://10.19.99.18:89/cookie/flash.js 卡顿2s 如何解决?