起因是公司的一次安全扫描提出了jquery版本漏洞问题。1.x系列版本等于或低于1.12的jQuery,和2.x系列版本等于或低于2.2的jQuery,过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCATION.HASH跨站漏洞。(漏洞官方修复介绍:http://bugs.jquery.com/ticket/9521)
安全建议是升级jquery至最新版。但是在项目里把jquery升级到最新的包3.4.1版本后,登录时页面报错如下:Cannot read property ‘msie’ of undefined。
网上百度了一下发现是因为$.browser这个api从jQuery1.9开始就正式废除,js代码里只要用到$.browser就会报这个错。但是,jQuery团队考虑到了这个改动带来的不便,推出了一个插件jQuery Migrate,这个插件能够自动恢复那些在最新版本里之后被废弃的API,从而让已有的js代码无须改动就能和最新的jQuery库一起正常运行。在引用的jquery文件后引用Migrate文件即可。
方法:
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
参考:https://www.cnblogs.com/Fancy1486450630/p/10528495.html
[jquery]Cannot read property 'msie' of undefined解决方法
原文:https://www.cnblogs.com/Fourteen-Y/p/11321181.html