这几天在写一个功能模块,就是用户根据自己的查询条件导出excel数据。 每次测试导出的数据都是有很奇怪的问题,不是导出多了数据就是少了数据,花费了半天时间追查,发现:原来是360浏览器搞的鬼:用360浏览器访问的时候总是老自动提交两次表单,两次请求使用的User-Agent还不一样
第一次用的是
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; MS-RTC LM 8; InfoPath.2; .NET4.0C;
第二次用的是
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1 360EE
而且第二次提交的表单默认的情况下传过去的是空值,刚好业务处理层又有处理参数为空以及非空的情况。
很是纠结!花了N久时间在代码中找问题了,发现每个逻辑都是对的,要不是最后把错误转向了浏览器,不知道还要折腾多久啊,真是伤不起!
解决的方式:
1、兼容360浏览器这种比较特殊的变态浏览器,将业务处理层的参数为空非空情况分开处理。
2、将360浏览器的默认浏览器修改为其他浏览器。
3、用360浏览器的时候将他的下载器模式(在浏览器的---工具----下载器---设置)改为IE模式。
总结:
开发的时候用面向主流的浏览器,测试的时候多用其他浏览器,特别关照一下变态的浏览器。