網頁

2017/11/21

Spring MVC Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported for @RequestBody MultiValueMap

當使用jQuery.ajax()呼叫Spring MVC Controller的方法時,如果該方法的參數有@RequestBody則會拋出下面錯誤。

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded' not supported

因為jQuery.ajax()預設的contentTypeapplication/x-www-form-urlencoded,但@RequestBody不支援這種格式。@RequestBody通常是用來處理application/jsonapplication/xml

如果原本@RequestBody的參數只是為了接收form表單的serialized的值,可以改用@RequestParam來處理。例如

@RequestMapping(value = "/getUser")
  @ResponseBody
  public String getUser(@RquestParam MultiValueMap) {
    // some code here
  }

參考:

沒有留言:

張貼留言