I am very new to java so may be this question seems duplicate, BUT i spent one day already on this issue. So I need solution now, or any guideline.
I am trying to receive post parameters from front end through web service BUT I am unable to receive any values.
This is my HTML FORM :
<form role="form" id="" name="" method="post">
    <div class="form-group associateTypeFormGroup">
        <label class="control-label">Associate Type : </label>
        <select class="form-control associateType" id="associateType" name="associateType">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
        </select>
    </div>
    <div class="form-group datasetNameFormGroup">
        <label class="control-label">Dataset Name : </label>
        <input type="text" class="form-control" name="datasetName" id="datasetName" />
    </div>
    <div class="form-group daterangeFormGroup">
        <label class="control-label">Date Range : </label>
        <input type="text" class="form-control daterange" name="daterange" id="daterange" data-time-picker="true" data-time-picker-increment="5" data-format="YYYY-MM-DD h:mm:ss A">
    </div>
    <div class="form-group listaFormGroup">
        <label class="control-label">List A : </label>
        <textarea class="form-control" id="lista" name="lista"></textarea>
    </div>
    <div class="form-group listbFormGroup">
        <label class="control-label">List B : </label>
        <textarea class="form-control" id="listb" name="listb"></textarea>
    </div>
    <div class="form-group minimumCallingFormGroup" style="display:none;">
        <label class="control-label">Minimum Calling : </label>
        <select class="form-control" id="minimumCalling" name="minimumCalling">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </div>
    <div class="form-group">
        <input type="button" class="btn btn-success" value="SUBMIT" onclick="return get_values(this);" />
    </div>
</form>
JS function to call web service :
function get_values() {
    associateType = $("#associateType").find(":selected").val();
    datasetName = $("#datasetName").val();
    startdate = $('#daterange').data('daterangepicker').startDate.toISOString().split('.')[0] + "Z";
    enddate = $('#daterange').data('daterangepicker').endDate.toISOString().split('.')[0] + "Z";
    if ($("#lista").val() != "")
        lista = '\'' + $("#lista").val().split(',').join('\',\'') + '\'';
    if ($("#listb").val() != "")
        listb = '\'' + $("#listb").val().split(',').join('\',\'') + '\'';
    minimumCalling = $('#minimumCalling').find(":selected").val();
    var cdrReqParams = {};
    cdrReqParams.associateType = associateType;
    cdrReqParams.datasetName = datasetName;
    cdrReqParams.fromDate = startdate;
    cdrReqParams.toDate = enddate;
    cdrReqParams.listA = lista;
    cdrReqParams.listB = listb;
    cdrReqParams.minimumCalling = minimumCalling;
    var jsonStr = JSON.stringify(cdrReqParams);
    API.call("save_associate.json", 'POST', function(data) {
        console.log(data);
    }, function(error) {
        console.log(error);
    }, jsonStr);
}
My controller
@RestController
public class AssociateController {
    @RequestMapping(value = "/associate", method = RequestMethod.GET)
    public ModelAndView associateIndex() {
        ModelAndView mav = null;
        mav = new ModelAndView("associate.html");
        return mav;
    }
    @Layout(Layout.NONE)
    @RequestMapping(value = "/save_associate.json", method = RequestMethod.POST)
    public @ResponseBody AjaxResponseBody save_associate(HttpServletRequest request, Model model) throws Exception {
        AssociateParams params = new AssociateParams();
        try {
            params.setAssociateType(request.getParameter("associateType"));
            params.setDatasetName(request.getParameter("datasetName"));
            params.setFromDate(request.getParameter("fromDate"));
            params.setToDate(request.getParameter("toDate"));
            params.setListA(request.getParameter("listA"));
            params.setListB(request.getParameter("listB"));
            params.setMinimumCalling(request.getParameter("minimumCalling"));
            System.out.println("+++ Associate Controller +++");
            System.out.println(params.getAssociateType());
            System.out.println(params.getDatasetName());
            System.out.println(params.getFromDate());
            System.out.println(params.getToDate());
            System.out.println(params.getListA());
            System.out.println(params.getAssociateType());
            System.out.println(params.getAssociateType());
        } catch(Exception e){
             e.printStackTrace();
        }
        finally{
             //dbHelper.closeDBConnection(conn);
        }
        return null;
    }
}
Associateparams.java
public class AssociateParams {
    private String associateType;
    private String datasetName;
    private String fromDate;
    private String toDate;
    private String listA;
    private String listB;
    private String minimumCalling;
    public String getAssociateType() {
        return associateType;
    }
    public void setAssociateType(String associateType) {
        this.associateType = associateType;
    }
    public String getDatasetName() {
        return datasetName;
    }
    public void setDatasetName(String datasetName) {
        this.datasetName = datasetName;
    }
    public String getFromDate() {
        return fromDate;
    }
    public void setFromDate(String fromDate) {
        this.fromDate = fromDate;
    }
    public String getToDate() {
        return toDate;
    }
    public void setToDate(String toDate) {
        this.toDate = toDate;
    }
    public String getListA() {
        return listA;
    }
    public void setListA(String listA) {
        this.listA = listA;
    }
    public String getListB() {
        return listB;
    }
    public void setListB(String listB) {
        this.listB = listB;
    }
    public String getMinimumCalling() {
        return minimumCalling;
    }
    public void setMinimumCalling(String minimumCalling) {
        this.minimumCalling = minimumCalling;
    }
}
I receive null in all post parameters, any idea what I am doing wrong here ?
I have seen the network tab on browser and service is sending all the required data correctly
API.CALL fUNCTION
var API = {
  call:function(url,type,successcallback,errorCallback,data){
    var data = (!!data) ? data : {};
    var callback = (!!callback) ? callback : function(){};
    $.ajax({
      contentType : "application/json",
      dataType: "json",
      //crossDomain: true,
      xhrFields: { withCredentials: true }, 
      url: url,
      data:data,
      type:type,
      success:successcallback,
      error:errorCallback
    });    
  }
}