在使用SpringMVC进行开发的时候,遇到了以下代码不能执行的情况。而且我已经正确导入了JQuery框架。
<script type="text/javascript">
$(function(){
alert("你好啊");
})
</script>
明明记得之前是可以执行的为什么现在却不能了。在浏览器的开发这工具上只能看到 SyntaxError: expected expression, got '<'[详细了解] 这个报错。
网上看了很多文章,自己也尝试了各种办法还是不能解决。整整耗了一天。最后我使用了最笨的办法。既然是之前可以执行然后因为我修改了某些地方导致不能执行。那我只要找到由可以执行变成不可以执行的那两个相邻的版本,对比这两个版本的不同。就可以找出来是什么原因导致的了。
于是我就从我这四百个版本的代码当中使用二分法。将代码检出,运行,再检出运行(真的是太费劲了),费了九牛二虎之力终于找到了。这两个相邻的版本只有一个字母的差别。
这是前一个版本
这是后一个版本。
真相大白,由于之前做好登陆功能后,嫌做测试的时候经常需要登录,所以就把拦截所有请求的这一个设置随便添加了一个字母上去,变成了只拦截这个不存在的请求,也就相当于所有的请求都不拦截。所以我的JQuery框架源代码没有被拦截。此时我上面贴的JQuery代码是可以运行的。等到后来我又把它改为拦截所有请求(然而此时我还不知道从现在开始,我上面贴的那段JQuery代码已经不能运行了)。所以后面我一直开发了两百多个版本以后才发现。此时的我恍然大悟,终于知道之前看到的文章说是Ajax不能执行是因为静态资源被拦截了(当时还不相信我的是静态资源被拦截导致的,因为我这个没有Ajax啊)。
所以,当知道问题的原因后一切都可以解决了。不知道问题原因的问题才是最难解决的问题。为了解决问题搜了不拦截静态资源的文章。这里找到一篇还不错。
这是原文链接
我把文章截图放下面
一、
二、