ruby-on-rails 数据表发布请求参数不起作用

wlp8pajw  于 2022-11-19  发布在  Ruby
关注(0)|答案(4)|浏览(104)

我是AngularJS和DataTables的新手。我正在做一个使用AngularJS前端和Rails后端的项目。
我尝试使用 AJAX POST方法在项目中使用DataTable,但DataTable AJAX POST方法发送的是数据参数常量。
当我使用一个普通 AJAX POST请求时,它工作正常。我不知道为什么DataTables POST AJAX不工作。
请帮我解决这个问题。

在AngularJS中使用 AJAX 调用

$.ajax({
   data: JSON.stringify({
       "key1": "value1",
       "key2": "value2"
   }),
   headers: "application/json; charset=utf-8",
   success: function(data){
        console.log(data);
   },
   error: function(){
       console.log("error");
   },
   type: "POST",
   url: "http://localhost:3000/api"
 });

此代码 AJAX POST。
它给出正确的成功响应。

数据表POST请求

$scope.studentList = {
   bFilter: false,
   paging:   false,
   bRetrieve : true,
   ajax: {
       data: JSON.stringify({
       "key1": "value1",
       "key2": "value2"
   }),
   headers: "application/json; charset=utf-8",
   success: function(data){
        console.log(data);
   },
   error: function(){
       console.log("error");
   },
   type: "POST",
   url: "http://localhost:3000/api"
   processData: false,
 },
 columns: [
     {}]
};

它在服务器端抛出以下错误。我的代码中有什么错误吗?

解析请求参数时出错。

内容:
如果您是一个用户,那么您就可以使用下面的方法来创建一个新的用户界面。这是一个很好的例子,它可以帮助你更好的理解和理解你的想法。61= %3A和62 = 1和63 = 8和64 =%7D
即使我使用processData:false选项,它仍会在服务器端抛出以下错误。

解析请求参数时出错。

内容:
[对象对象]
请帮我解决这个问题。

aiazj4mn

aiazj4mn1#

尝试删除JSON.stringify.data表或 AJAX 内部处理JSON解析/字符串化。

2jcobegt

2jcobegt2#

请使用以下命令:

$('#example').dataTable({
    "ajax": {
        "url": "data.json",
        "contentType": "application/json",
        "type": "POST",
        "data": function (d) {
            return JSON.stringify(d);
        }
    }
});
9rygscc1

9rygscc13#

在dataTables中你不能在data中传递字符串,你需要一个函数:

var dataObject = {
  "key1": "value1",
  "key2": "value2"
};

var table = $('#exampleTable').DataTable({
  ajax: {
    "url": "urlExample.com",
    "type": "POST",
    "data": function(d) {
      $.extend(d, dataObject);
      return JSON.stringify(d);
    },
    "dateType": "json",
    "contentType": "application/json; charset=utf-8"
  }
});
ifmq2ha2

ifmq2ha24#

var table = $('#datatable').DataTable({
// "processing": true,
"serverSide": true,
  "ajax": 'controller/documents/getDocExpAjax',
  "type": 'POST',
  "data": function (d) {
     return JSON.stringify(d);
  },
  "dateType": "json",
  "contentType": "application/json; charset=utf-8"
});

相关问题