我正在尝试使用DataTables库为Jquery将一些简单数据发送到一个SQL查询控制器。这个查询将返回JSON,我将以愉快的方式继续,然后按照数据执行操作。
使用内置的jquery AJAX时,我没有遇到任何问题。这是工作代码:
$.post('/rx/dostuff', {fromDate: from_date, toDate: to_date}, function(data){
var dataObject = JSON.parse(data);
if(data !== "[]"){
$("#display_area").empty();
$("#display_area").append("<div> " + ...
blah blah blah
所以这很好用,我发布了from_date和to_date,我可以在网络参数标签中看到它被发送为
fromDate: 02/01/2016
toDate: 02/24/2016
我的PHP控制器选择了,我做一些语句绑定以保证安全,并且繁荣,我的结果返回给我JSON编码。
当我尝试使用DataTables库执行此操作时,我的params最终会像这样发送:
fromDate=02%2F01%2F2016&toDate=02%2F24%2F2016
PHP引发了地狱,并发出警告说我错过了我的控制器的参数1。
我的问题是,为什么DataTables发送这样的参数?我的发送方式是否格式错误?
这是我的DataTables AJAX代码:
$('#dataTable').DataTable({
ajax: {
url: "/rx/dostuff",
type: "POST",
contentType: "application/json",
data: {
"fromDate": from_date,
"toDate": to_date
}
},
columns: [
{ data: 'col'},
{ data: 'col'},
{ data: 'col'},
{ data: 'col'}
]
});
非常感谢任何帮助!
答案 0 :(得分:1)
删除DateTime
。
此参数定义将数据发送到服务器时的格式。默认为&#34; application / x-www-form-urlencoded;字符集= UTF-8&#34;根据您之前使用的contentType: "application/json"
。
有关详细信息,请参阅$.ajax()
。