首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java servlet中的JQuery $.ajax() post数据

java servlet中的JQuery $.ajax() post数据
EN

Stack Overflow用户
提问于 2012-04-19 01:30:51
回答 4查看 398K关注 0票数 42

我想将数据发送到java servlet进行处理。数据将具有可变长度,并以键/值对的形式存在:

代码语言:javascript
复制
{ A1984 : 1, A9873 : 5, A1674 : 2, A8724 : 1, A3574 : 3, A1165 : 5 }

数据不需要以这种方式格式化,它就是我现在所拥有的。

代码语言:javascript
复制
var saveData = $.ajax({
      type: "POST",
      url: "someaction.do?action=saveData",
      data: myDataVar.toString(),
      dataType: "text",
      success: function(resultData){
          alert("Save Complete");
      }
});
saveData.error(function() { alert("Something went wrong"); });

$.ajax()函数运行良好,因为我确实收到了“保存完成”的警告。我的dilemna在servlet上。如何检索数据?我试着使用像这样的HashMap ...

代码语言:javascript
复制
HashMap hm = new HashMap();
hm.putAll(request.getParameterMap());

...but hm结果为空,我猜这意味着.getParameterMap()没有找到键/值对。我哪里错了,或者我遗漏了什么?

EN

回答 4

Stack Overflow用户

发布于 2017-01-18 15:55:37

使用java脚本和ajex调用发送数据的简单方法。

首先将您的表单如下所示

代码语言:javascript
复制
<form id="frm_details" method="post" name="frm_details">
<input  id="email" name="email" placeholder="Your Email id" type="text" />
    <button class="subscribe-box__btn" type="submit">Need Assistance</button>
</form> 

表单id #frm_details上sumbit后的javascript逻辑目标

代码语言:javascript
复制
$(function(){
        $("#frm_details").on("submit", function(event) {
            event.preventDefault();

            var formData = {
                'email': $('input[name=email]').val() //for get email 
            };
            console.log(formData);

            $.ajax({
                url: "/tsmisc/api/subscribe-newsletter",
                type: "post",
                data: formData,
                success: function(d) {
                    alert(d);
                }
            });
        });
    }) 





General 
Request URL:https://test.abc
Request Method:POST
Status Code:200 
Remote Address:13.76.33.57:443

From Data
email:abc@invalid.ts
票数 12
EN

Stack Overflow用户

发布于 2012-04-19 10:00:38

就目前而言,我将走一条与我之前所说的不同的路线。我将格式化数据的方式更改为:

代码语言:javascript
复制
  &A2168=1&A1837=5&A8472=1&A1987=2

在服务器端,我使用getParameterNames()将所有键放入枚举器,然后遍历枚举器并将键和值放入HashMap。它看起来像这样:

代码语言:javascript
复制
Enumeration keys = request.getParameterNames(); 
HashMap map = new HashMap(); 
String key = null; 
while(keys.hasMoreElements()){ 
      key = keys.nextElement().toString(); 
      map.put(key, request.getParameter(key)); 
}
票数 0
EN

Stack Overflow用户

发布于 2021-05-12 18:19:27

您可以像这样使用ajax post:

代码语言:javascript
复制
 $.ajax({
   url: "url", 
   type: "POST",
   dataType: "json",
   contentType: "application/json; charset=utf-8",
   data: JSON.stringify({ name: 'value1', email: 'value2' }),
   success: function (result) {
       // when call is sucessfull
    },
    error: function (err) {
    // check the err for error details
    }
 }); // ajax call closing
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10214723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档