数据表,意外的标记ILLEGAL

时间:2013-09-08 15:08:07

标签: javascript apache datatables

我的数据表存在问题。当包含在html文档中的脚本标记中时,下面的代码可以正常工作。如果代码是从外部文件加载的,浏览器会抱怨“意外的令牌”

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

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

js Source Code https://www.dropbox.com/s/vxjbepd3kdde7zg/erroJs.jpg

4 个答案:

答案 0 :(得分:2)

问题在于apache。

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

  

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

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

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

  •   
     

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

EnableMMAP off
EnableSendfile off
     

只需重新启动网络服务器即可!

# service httpd restart

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您在'sServerMethod': 'POST'

末尾缺少逗号

答案 3 :(得分:0)

你的语法错了。你在sServerMethod':'POST'

的末尾错过了一个逗号