sunmingtao / sample-code

3 stars 4 forks source link

Use @RequestParam and @RequestBody to receive jquery ajax post request #165

Closed sunmingtao closed 4 years ago

sunmingtao commented 4 years ago

RequestParam

jQuery:

$.ajax({
  url: '/abcd',
  type: "POST",
  data: jQuery.param({
    "jobName": jobName
  }),
  success: function(data) {
    alert(data);
  }
});

Spring controller:

@PostMapping(value = "/abcd")
@ResponseBody
public String process(@RequestParam final String jobName) {
    return jobName;
}

or

@PostMapping(value = "/abcd")
@ResponseBody
public String process(@ModelAttribute final ParamObj paramObj) {
    return "Success";
}
sunmingtao commented 4 years ago

jQuery:

var postData = {
  'sortField': 'abc',
  'sortOrder': 'descent'
};

$.ajax({
  type: 'POST',
  datatype: "json",
  contentType: "application/json; charset=utf-8",
  url: '/abcd',
  data: JSON.stringify(postData)
}).done(function(data) {
  console.log(data);
});

Spring controller:

@PostMapping(value = "/abcd", consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
public ResponseEntity<String> exportJobRelatedWorks(@RequestBody final Request request) {
    System.out.println(request.getSortField() + " " + request.getSortOrder());
    return request;
}