当前位置: 代码迷 >> Ruby/Rails >> Uncaught SyntaxError: Unexpected token <
  详细解决方案

Uncaught SyntaxError: Unexpected token <

热度:129   发布时间:2016-04-29 02:19:22.0
Uncaught SyntaxError: Unexpected token <

转:http://blog.csdn.net/kingviker/article/details/7476403

? 昨天在调试一个项目效果的时候,死活出不来,用chrome调试一下,发现报了一个错误:Uncaught SyntaxError: Unexpected token <,我定位到jsp文件之后发现定位的位置是我的html头文件声明:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">,我点了其他页面发现没有报这个错误,经过一番对比验证,找到问题,出问题的页面应用的动态js文件:<script type="text/javascript" src="${_contextPath}/${detailjs}"></script>,其中的datailjs没有找到,(是我粗心大意忘记配置了),导致了相应的错误,但是我不满足于此,想知道问题根本原因,

我用chrome调试错误页面查看js代码:

[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="/aabbcc/"></script>??

我想可能就是引用js源文件路径不全造成的,我又做了一个实验,我手动在jsp页面代码添加了如下的一个js引用;

[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="/aaa/"></script>??

然后chrome调试,报错如下:

[html]?view plaincopyprint?
?
  1. GET?http://hello.cas.server:9080/aaa/?404?(Not?Found)??

,并不是如标题上的Uncaught SyntaxError: Unexpected token <,这又另我很费解,经过一番思考后,我发现了一个现象,页面我引用如下js:

[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="${_contextPath}/${detailjs1}"></script>??
  2. <script?type="text/javascript"?src="/aaa/"></script>??

生成页面:

[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="/BOSS_NQCP_MANAGE/"></script>??
[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="/aaa/"></script>??

?

chrome报错结果:

[html]?view plaincopyprint?
?
  1. GET?http://hello.cas.server:9080/aaa/?404?(Not?Found)??
  2. index.do:20Uncaught?SyntaxError:?Unexpected?token?<??

大家发现问题了没,我是后引用的/aaa/,但是确实先报的它的错,着就说明了一个问题,就是jsp页面会先处理静态的引用页面,也就是说引用文件的地址不是动态参数的页面,

然后我又用真实存在的项目路径做了测试,测试js:

[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="/BOSS_NQCP_MANAGE/resource/"></script>??

生成页面:

[html]?view plaincopyprint?
?
  1. <script?type="text/javascript"?src="/BOSS_NQCP_MANAGE/resource/"></script>??

这次chrome报错结果就是标题一样了,
我得出的结论如下:当js引用的文件是项目路径下的文件夹时,会报这个错误.

  相关解决方案