【发布时间】:2016-02-10 15:20:41
【问题描述】:
我遇到了一个奇怪的问题。当我编辑 .js 文档时,我收到错误“SyntaxError:非法字符”。
这是文件的一部分。如您所见,我刚刚添加了alert(1);:
这是它在我的浏览器中的显示方式(请注意文档末尾的这些符号):
关于文档:字符集 UTF-8,换行符 CRLF。
我在 Ubuntu 上使用 Firefox。来自本地服务器的标头:
Accept-Ranges: bytes
Connection: close
Content-Length: 56871
Content-Type: application/x-javascript
Date: Wed, 10 Feb 2016 15:15:05 GMT
Etag: "6d-de27-c52b5640"
Last-Modified: Wed, 10 Feb 2016 15:05:53 GMT
Server: Apache/2.2.3 (CentOS)
我尝试将Content-Type 更改为application/javascript,尝试在不同的编辑器中编辑,尝试删除BOM——结果相同。
UPD:我不知道为什么,但是当我重新加载本地服务器时它可以工作! (我使用安装了 centos 的 vagrant)。我试图重新加载只是 apache - 仍然错误。
UPD 2:本地服务器上 .js 文件的 mime 类型是 text/x-c 或 text/x-c++ 同时它在主机上是 text/plain
【问题讨论】:
-
您是否将一些代码复制/粘贴到您的 JavaScript 源代码中,并且是从网页执行的?有时这会导致包含杂散的 Unicode 不可见字符。您看不到它们,但 JavaScript 解析器可以。
-
嗨。是的。我从网页复制了“警报”代码。
-
你可能想尝试删除它,然后手动输入。
-
尝试手动输入。结果相同。
-
很难摆脱这些,但有些编辑器比其他编辑器更容易。哪一行代码与语法错误有关?这是一个很好的起点。
标签: javascript ubuntu character-encoding vagrant virtualbox