【问题标题】:JS charset error in browser浏览器中的JS字符集错误
【发布时间】: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-ctext/x-c++ 同时它在主机上是 text/plain

【问题讨论】:

  • 您是否将一些代码复制/粘贴到您的 JavaScript 源代码中,并且是从网页执行的?有时这会导致包含杂散的 Unicode 不可见字符。您看不到它们,但 JavaScript 解析器可以。
  • 嗨。是的。我从网页复制了“警报”代码。
  • 你可能想尝试删除它,然后手动输入。
  • 尝试手动输入。结果相同。
  • 很难摆脱这些,但有些编辑器比其他编辑器更容易。哪一行代码与语法错误有关?这是一个很好的起点。

标签: javascript ubuntu character-encoding vagrant virtualbox


【解决方案1】:

我找到了问题的解决方案。我已将EnableSendfile Off 添加到我的.htaccess 中。更多信息请关注the link

【讨论】:

    【解决方案2】:

    在变量 order_addresses 后面加上逗号',' 如果您使用 ajax 调用服务器,请不要使用 Content 类型

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 2023-02-08
      相关资源
      最近更新 更多