0

我对数据表有疑问。下面的代码在包含在 html 文档中的脚本标记中时有效。如果代码是从外部文件加载的,浏览器会抱怨“意外令牌”

var oTable = $('#tbFilmes').dataTable({
    'bProcessing': true,
    'sAjaxSource': 'filme/ajaxBuscarFilme',
    'sServerMethod': 'POST',
    'aoColumns': [
        { "sTitle": "Id"},
        { "sTitle": "Name"},
        { "sTitle": "Year"}
    ]
});

检查服务器返回的 js 文件显示文件附加了非 ascii 字符,如下所示。

js源代码 https://www.dropbox.com/s/vxjbepd3kdde7zg/erroJs.jpg

4

4 回答 4

2

问题出在apache中。

我在 httpd.conf 中取消注释了一行,它解决了这个问题。我在这里找到了答案

您需要禁用以下两个选项:

  • EnableMMAP - 此指令控制 httpd 在交付期间需要读取文件内容时是否可以使用内存映射。默认情况下,当处理请求需要访问文件中的数据时——例如,当使用 mod_include 传递服务器解析的文件时——如果操作系统支持,Apache 内存映射文件。

  • EnableSendfile - 该指令控制 httpd 是否可以使用内核的 sendfile 支持将文件内容传输到客户端。默认情况下,当处理请求不需要访问文件中的数据时——例如,交付静态文件时——Apache 使用 sendfile 来交付文件内容而无需读取文件(如果操作系统支持)。

但是,已知这两个指令对网络安装的 DocumentRoot(例如 NFS 或 SMB)有问题,内核可能无法通过其自己的缓存服务网络文件。因此,只需在所有框上打开 httpd.conf 并更改以下内容:

EnableMMAP off
EnableSendfile off

只需重新启动 Web 服务器,瞧!

# service httpd restart
于 2013-09-09T23:38:10.303 回答
0

您在该选项后错过了一个逗号。

使用带有语法检查的编辑器,它会为您找到此类问题。

于 2013-09-08T15:10:15.933 回答
0

您在末尾缺少一个逗号'sServerMethod': 'POST'

于 2013-09-08T15:10:27.487 回答
0

你的语法是错误的。您在 sServerMethod': 'POST' 的末尾缺少逗号

于 2013-09-08T15:14:34.727 回答