我的数据表存在问题。当包含在html文档中的脚本标记中时,下面的代码可以正常工作。如果代码是从外部文件加载的,浏览器会抱怨“意外的令牌”
var oTable = $('#tbFilmes').dataTable({
'bProcessing': true,
'sAjaxSource': 'filme/ajaxBuscarFilme',
'sServerMethod': 'POST',
'aoColumns': [
{ "sTitle": "Id"},
{ "sTitle": "Name"},
{ "sTitle": "Year"}
]
});
检查服务器返回的js文件会显示附加到文件的非ascii字符,如下所示。
答案 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'
的末尾错过了一个逗号