jquery - 使用 DataTables Ajax 将数据发布到 php Controller

标签 jquery json ajax post datatables

我正在尝试使用 Jquery 的 DataTables 库将一些简单的数据 POST 到作为 SQL 查询的 Controller 。该查询将返回 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 Controller 接收到它,我进行了一些语句绑定(bind)以确保其安全,然后,我的结果以 JSON 编码返回给我。

当我尝试使用 DataTables 库执行此操作时,我的参数最终会像这样发送:

fromDate=02%2F01%2F2016&toDate=02%2F24%2F2016

PHP 引发了 hell ,并发出警告,指出我缺少 Controller 的参数 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'}
        ]
    });

非常感谢任何帮助!

最佳答案

删除contentType:“application/json”

该参数定义了向服务器发送数据时的格式。默认值为“application/x-www-form-urlencoded; charset=UTF-8”,根据您之前使用 $.post() 的内容,它应该适合您。

参见$.ajax()了解更多信息。

关于jquery - 使用 DataTables Ajax 将数据发布到 php Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608368/

相关文章:

python - Bottle POST 方法 - 获取查询参数

javascript - Ajax请求不发送数据到php页面但登录控制台正常

javascript - 单击链接并到达特定页面部分时 jQuery 交换 Logo

JavaScript 将表单值传递到新页面

iphone - TouchJSON 如何使填充有 json 的表格可点击?

json - 如何使用 $http.get 检索到的 JSON 数据和 Promise?

javascript - 如何使用 jQuery 和 ajax 仅使用新值或更改值更新表?

jquery - jtable "Add new record"css 不显示

javascript - ajax 返回字段上的组合框

python - 如何使用 json.loads 将此字符串转换为 json 格式