我在这里非常缺乏经验并且在我的网站上有一个预制的插件。我不能联系作者,因为他似乎不再支持它了。他仍然有一个所有工作的演示页面,我已经比较了我能做到的最好的东西,它似乎是相同的,所以问题必须在IIS 8.5我用来托管我的网站/数据库。
以下是我确定的罪魁祸首:
"ajax": "inc/server_processing.php?type=getplayers",
server_processing从始终在变化的数据库中提取数据。您无法直接浏览此页面。这个ajax脚本位于名为players.php的页面上,另一个页面items.php具有相同的ajax脚本,并且还返回404未找到的脚本。
"ajax": "inc/server_processing.php?type=allitems",
当您转到其中任何一个选项卡时,dataTables警告:我知道数据库工作正常,因为如果您单击任何其他具有绝对路径而非查询字符串的选项卡,则会显示收集的数据。
我觉得我并没有很好地解释自己,我为此道歉,我在解决这个问题的最后两天里学到了我所知道的一切。这是我的页面,这里是带有工作副本的作者页面。
注意:目录结构是wwwroot / stats / inc / in stats文件夹是带有ajax脚本的2 .php,而在inc文件夹中是server_processing.php,js文件夹在stats文件夹中。
<script>
$(document).ready(function() {
var players = $('#players').DataTable( {
"processing": false,
"serverSide": true,
"ajax": "inc/server_processing.php?type=getplayers",
"pagingType": "full",
"columns": [
{ "data": "name" },
{ "data": "auth", "visible" : false },
{ "data": "kills" },
{ "data": "deaths" },
{ "data": "assists" },
{ "data": "kpd" },
{ "data": "kpm" },
{ "data": "playtime" },
{ "data": "disconnect_time" }
],
"order": [[2, 'desc']]
});
$('#players tbody').on('click', 'tr', function () {
window.location = "player.php?id="+players.cell(this, 1).data();
});
});
</script>
答案 0 :(得分:0)
您应该使用HTTP方法GET传递参数。
$.ajax({
url: 'inc/server_processing.php',
data: {
type: 'getplayers'
},
type: 'get',
success: function(){
// insert code here
}
});
虽然在这些情况下我通常更喜欢使用POST而不是GET,但这取决于你和你的应用程序在一天结束时的需求。
答案 1 :(得分:0)
因此,对于我对此数据表警告的特定问题,修复是在IIS中编辑web.config文件。我的数据表中的一些URL非常大,超出了IIS中的默认最大值。这就是我改为:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="3000" maxUrl="1000" />
<fileExtensions>
<remove fileExtension=".java" />
<add fileExtension=".java" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
您也可以通过在IIS中单击您的站点来更改它,然后转到请求筛选以设置maxQueryString和MaxUrl。我希望,如果其他人遇到这个问题或类似问题,它会帮助他们。