为什么 ajax `data` 导致此代码中断?

Why does ajax `data` cause this code to break?

我是 JavaScript 的新手,但我写了一些代码,据我所知格式正确,但是当我在其中添加 data 元素时,它破坏了代码,但我看不出为什么根据 jQuery 文档,我正在正确使用 .val()

<script>
$( "#button1" ).click(function() {
    $('#table').DataTable( {
        "ajax": {
                "data": [
                    "date1": $( "#inputDate1" ).val(),
                    "date2": $( "#inputDate2" ).val(),
                ],
                "url": "/server_processing/database.php",
                "type": "POST"
                },
        "serverSide": true
    } );
} );
</script>

你有一个逗号不属于那里。如下所述,另一个问题是数组不能有关联键。

<script>
$( "#button1" ).click(function() {
    $('#table').DataTable( {
        "ajax": {
                "data": {
                    "date1": $( "#inputDate1" ).val(),
                    "date2": $( "#inputDate2" ).val() // No , here
                },
                "url": "/server_processing/database.php",
                "type": "POST"
                },
        "serverSide": true
    } );
} );
</script>

数组文字 [] 包含以逗号分隔的项目列表。

对象字面量 {} 包含逗号分隔的键 : 值对列表。

数组文字中包含对象文字的主体。


在数组或对象字面量中使用尾随逗号虽然在某些 JS 版本中有效,但可能会产生问题。所以把它也去掉。


            "data": {
                "date1": $( "#inputDate1" ).val(),
                "date2": $( "#inputDate2" ).val()
            },