我无法捕获通过 ajax 请求发送到 servlet 的数据 [重复]

Posted

技术标签:

【中文标题】我无法捕获通过 ajax 请求发送到 servlet 的数据 [重复]【英文标题】:i'm not able to catch data send through ajax request to servlet [duplicate] 【发布时间】:2021-11-11 05:48:09 【问题描述】:
$("#btnDel").on("click",function()
var idsarray = [];
$("input:checkbox[name=delbox]:checked").each(function() 
                idsarray.push($(this).val());
            );
        console.log(idsarray);  
var idsString = idsarray.join();
console.log(idsString);

   $.ajax(
    url: 'StudentController',
    dataType: 'json',
    data: 
        "idsToBeDeleted" : idsString
    ,
    type: 'DELETE'
    );
);

这是 JS 代码,我捕获复选框的 id 并将它们作为逗号分隔的字符串发送到 servlet。问题是当我尝试在 servlet 上捕获变量并将其打印出来时,我得到的只是空值。

protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        //catching values from recieved ajax request
                String idlistString = (String) request.getParameter("idsToBeDeleted");
                System.out.println(idlistString);
                

                response.sendRedirect(request.getContextPath());
    

servlet 代码在这里,一些关于如何通常通过 ajax 请求捕获发送的数据的解释将不胜感激。

【问题讨论】:

【参考方案1】:

尝试在您的网址前加上斜杠并输入:“POST”。还要注意我所做的小改动。

$.ajax(
    url: '/StudentController',
    type: 'POST',
    dataType: 'json',
    data: 
        operation: 'remove',
        idsToBeDeleted: idsString
    ,
    type: 'DELETE'
);

【讨论】:

我已经将请求发送到服务器,问题只是我无法捕获我正在发送的数据的值(我也是要删除的请求类型,可以'无论如何都不要改变)。

以上是关于我无法捕获通过 ajax 请求发送到 servlet 的数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 直接发送 PUT 请求,后端无法接收到数据的原因及解决方案

通过 CURL 发送 ajax 请求

无法将 ajax json 发布请求发送到 django 视图

Laravel:通过无表单的 AJAX 向控制器发送数据

使用 ajaxSend 在 iframe 中捕获来自父页面的请求

为啥我无法通过普通浏览器请求获得 ajax 请求的响应? [复制]