![除了新服务器外,Javascript 在其他地方都可以运行](https://linux22.com/image/572100/%E9%99%A4%E4%BA%86%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A4%96%EF%BC%8CJavascript%20%E5%9C%A8%E5%85%B6%E4%BB%96%E5%9C%B0%E6%96%B9%E9%83%BD%E5%8F%AF%E4%BB%A5%E8%BF%90%E8%A1%8C.png)
服务器 A:Windows Server 2008 R2,IIS 7,管理员 - 我
服务器 B:Windows Server 2008 R2、IIS 7、管理员 - 公司服务器管理员组
我有一个在本地机器上运行良好的 Javascript 文件。JS 文件在服务器 B 上也能正常工作。当加载到服务器 A 时,页面返回错误“未指定错误”,并带有一行在 HTML 或 JS 中都没有多大意义的转到行。当用 JQuery 文件替换时,该文件在本地也能正常工作,在服务器 B 上也能正常工作,我再次收到不同的错误“需要对象”,并带有一行毫无意义的转到行。
服务器 A 上的同一站点上有一些可运行的 Javascript,因此 JS 并未被完全禁用。
我知道 JS 和 JQuery 被认为是客户端语言,但在这种情况下“一旦你排除了不可能,剩下的,无论多么不可思议,都一定是事实。”
您,服务器故障用户,是否知道哪些服务器配置会影响 Javascript/JQuery 的性能?
答案1
这可能意味着当.js
请求文件时服务器没有返回正确的数据。
它之所以被称为客户端语言,是因为它是一种客户端语言;javascript 文件不会以任何方式在服务器上执行;就它而言,它们只是具有不同 MIME 类型的文本文件。
在 Firebug 或 Chrome 的开发工具中,仔细查看从两个服务器发出的文件请求的响应.js
。它们之间有些不同。
答案2
我猜测服务器 A 上启用了 IE 增强安全配置 (IE ESC)。您可以从服务器管理器 MMC 的顶层将其关闭。
而且服务器没有通常需要能够运行 javascript 才能向客户端提供服务。
答案3
此问题出现在 IIS-8 和 Chrome 63.0.3239.132 上,无法加载 jQuery数据表. 文件和代码从 DataTables 网站下载(使用 JQuery 3 和 DataTables 包进行 DataTables 样式设置 - 无 min 无连接)然后上传到映射到 IIS 站点的目录,以创建仅包含 HTML 和 JS 的静态站点。使用 Internet Explorer 在服务器上本地查看时,jQuery 可以正常工作。使用服务器的完整地址在网络上的另一台计算机上查看时,jQuery 会抛出错误,因为浏览器未加载 jQuery 脚本。IIS 可以正常工作。基本 HTML 可以加载。jQuery 已损坏。
为了解决这个问题,在 Windows Server 2012 机器上使用记事本打开文件,然后另存为并选择编码 UTF-8,将文件保存为 UTF-8。将 HTML 指向文件的 UTF-8 版本,jQuery 就可以正常工作了。
引发的错误包括:
Expected identifier
Expected identifier, string or number
'jQuery' is undefined
'$' is undefined
当 JavaScript 脚本 src 目标未指向有效的 JavaScript .js 文件时,也会引发类似的错误。