除了新服务器外,Javascript 在其他地方都可以运行

除了新服务器外,Javascript 在其他地方都可以运行

服务器 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 文件时,也会引发类似的错误。

相关内容