JQuery $.ajax() post - data in a java servlet

后端 未结 4 1191
面向向阳花
面向向阳花 2020-12-02 17:11

I want to send data to a java servlet for processing. The data will have a variable length and be in key/value pairs:

{ A1984 : 1, A9873 : 5, A1674 : 2, A87         


        
相关标签:
4条回答
  • 2020-12-02 17:25

    To get the value from the servlet from POST command, you can follow the approach as explained on this post by using request.getParameter(key) format which will return the value you want.

    0 讨论(0)
  • 2020-12-02 17:27

    For the time being I am going a different route than I previous stated. I changed the way I am formatting the data to:

      &A2168=1&A1837=5&A8472=1&A1987=2
    

    On the server side I am using getParameterNames() to place all the keys into an Enumerator and then iterating over the Enumerator and placing the keys and values into a HashMap. It looks something like this:

    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 讨论(0)
  • 2020-12-02 17:29

    You don't want a string, you really want a JS map of key value pairs. E.g., change:

     data: myDataVar.toString(),
    

    with:

    var myKeyVals = { A1984 : 1, A9873 : 5, A1674 : 2, A8724 : 1, A3574 : 3, A1165 : 5 }
    
    
    
    var saveData = $.ajax({
          type: 'POST',
          url: "someaction.do?action=saveData",
          data: myKeyVals,
          dataType: "text",
          success: function(resultData) { alert("Save Complete") }
    });
    saveData.error(function() { alert("Something went wrong"); });
    

    jQuery understands key value pairs like that, it does NOT understand a big string. It passes it simply as a string.

    UPDATE: Code fixed.

    0 讨论(0)
  • 2020-12-02 17:40

    Simple method to sending data using java script and ajex call.

    First right your form like this

    <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> 
    

    javascript logic target on form id #frm_details after sumbit

    $(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
    
    0 讨论(0)
提交回复
热议问题