java - 如何从ajax请求中获取servlet中的参数?

标签 java ajax servlets

这是客户端代码:

function save(calc){
    var request = new XMLHttpRequest();

    request.open("POST","/Calculator/Controller?action=saveCalc",true);
    //request.send("calc=calc")   ---this does not work also
    request.send(calc);
}

这是 servlet:

if (action.equals("saveCalc")) {
        String parameter = request.getParameter("calc");
        System.out.println(parameter);
}

这里的参数为空...

我也这样尝试过:

function save(calc){
        var request = new XMLHttpRequest();
        request.open("POST","/Calculator/Controller?action=saveCalc",true);
        var data = new FormData();
        data.append('calc', 'calc');
        request.send(data);
    }

也不起作用。

如何获取这个....参数。 :D

我成功了。这是解决方案: - 内容类型 ...

function save(calc){
    var request = new XMLHttpRequest();
    request.open("POST","/Calculator/Controller?action=saveCalc",true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.send("calc=" + calc);
}


protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

        String action = request.getParameter("action");

        if (action.equals("saveCalc")) {
            String calc = request.getParameter("calc");
            System.out.println(calc);
        }
}

最佳答案

首先你做错了,因为 GET 中的参数通过 URL 传输,所以如果你使用 POST 并通过 URL 发送参数,那么这不应该在请求中传输,POST 意味着参数通过请求正文传输,所以你必须做这样的事情:

var form = document.getElementById('subscribe_frm');
form.setAttribute("method", method);
form.setAttribute("action", path);
form.submit();

您可以先创建属性。

让代码正常工作的另一种方法是:

request.open("GET","/Calculator/Controller?action=saveCalc",true);

将 POST 移至 GET

关于java - 如何从ajax请求中获取servlet中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30624561/

相关文章:

java - 具有两个功能的 Android 按钮

java - 分割 PDF 并在 PDF 文件中添加密码

javascript - HTML5 websockets 与可访问性标准的兼容性如何?

php - 使用 jQuery.ajax() 发送和使用 POST 变量

java - doGet servlet 中的 InputStreamReader

Java - 通过 toString() 方法以特定格式打印 ArrayList 对象

java - Java Future 和 RejectionHandler 的查询

javascript - Ajax 。发送数据到php文件

java - Servlet 安全过滤器

java - 多线程servlet;单线程EJB