You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JSP中导入WebSocketClient.js时遇Uncaught SyntaxError错误求助

解决JSP导入WebSocketClient.js时的"Unexpected token <"错误

嘿,这个错误我之前也碰到过!本质原因很简单:浏览器请求你的WebSocketClient.js文件时,服务器返回的根本不是JS代码,而是一段HTML(比如404错误页的开头<html>标签),所以浏览器解析JS的时候看到<就懵了,直接抛出语法错误。

下面给你几个最常见的排查和解决方向:

1. 先把路径搞对!

这是最容易踩坑的点,一定要对应上JS文件的实际位置:

  • 如果JS和当前JSP在同一个文件夹里,直接写:
    <script src="WebSocketClient.js"></script>
    
  • 如果JS放在项目根目录的js文件夹下,记得用项目上下文路径(避免部署路径变化导致的错误):
    <script src="${pageContext.request.contextPath}/js/WebSocketClient.js"></script>
    
    这里的${pageContext.request.contextPath}会自动获取你的项目部署路径,比如你的项目部署在/chatApp,它就会替换成/chatApp,绝对不会错。

2. 确保服务器能找到静态资源

如果是Java EE项目,得确认web.xml里配置了静态资源的映射,让服务器知道*.js这类文件是静态资源,不用交给Servlet处理:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>

要是用Spring Boot的话就省心多了,默认会自动映射/static、/public这些目录的静态资源,你把JS文件扔进去就行。

3. 检查有没有过滤器/URL重写搞事情

有些项目里的权限过滤器、URL重写规则会把JS文件的请求给拦截了,返回登录页或者错误页(都是HTML)。你可以直接在浏览器地址栏输入JS文件的完整URL,比如:

http://localhost:8080/你的项目名/js/WebSocketClient.js
看看返回的是不是纯JS代码。如果是HTML页面,就得调整过滤器的规则,让静态资源请求跳过过滤。

4. 核对script标签的写法

别犯低级错误:比如把src写成href,或者在同一个script标签里既写外部文件又写内联代码。正确的写法应该是:

<script type="text/javascript" src="${pageContext.request.contextPath}/js/WebSocketClient.js"></script>

内容的提问来源于stack exchange,提问作者Kat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:09:42