【发布时间】:2011-09-03 14:39:58
【问题描述】:
背景:
我有一个 servlet,我在其中动态生成 javascript 并将其放入变量 script。然后我将响应内容类型设置为text/javascript 并将脚本发送给客户端:
resp.setContentType("text/javascript");
resp.getWriter().println(script);
问题:
浏览器确实下载了 javascript 文件,但 它无法识别文件中的函数。如果我创建一个静态 javascript 文件并改用它,它可以正常工作。
问题:
应该怎么做才能使浏览器将来自 servlet 的响应视为常规 javascript 文件?
感谢您的帮助。
【问题讨论】:
-
它应该可以正常工作。你到底是如何包括它的?如果直接在浏览器地址栏中输入servlet的URL请求响应看起来不错?
-
听起来您的问题可能出在客户端,您是如何包含脚本的?
-
响应是有效的 JavaScript 吗?检查您的浏览器错误日志;我倾向于进行单元测试,用 Rhino 解析生成的脚本,作为健全性检查。客户端是否接收到
Content-Type标头?我遇到过资源管理器/VIP/反向代理会重写我精心设计的标头并在其中注入各种基于规则的垃圾的情况。如果是这样,请尝试使用.js结束 servlet 映射。提及浏览器、servlet 容器等可能会有所帮助。 -
@Nicklas 以下是我包含脚本的方式:
-
@BalusC 是的,它看起来不错。唯一的问题是所有内容都出现在一行中,没有任何换行符。
标签: java javascript servlets