ajax-常見content-type類型及springmvc中的獲取方式

content-type type data中數據的傳送格式 data的格式 springmvc中可以獲取數據的方式
application/x-www-form-urlencoded post Form Data 必須是json對象 @RequestParam
  get Query String Parameters 必須是json對象 @RequestParam
application/json post Request Payload 必須是json格式字符串 @RequestBody
  get Query String Parameters 必須是json對象 @RequestParam
multipart/form-data post Form Data 一般用於文件上傳,當然也可以攜帶參數 可以同file-upload.jar來對數據

 

注意:在application/x-www-form-urlencoded類型下,使用post發送List類型的數據時,後端對應的參數名稱應該加上"[]"。因爲瀏覽器會將該content-Type下的List數據進行拆分。

舉例:

// demo使用的是jQuery的ajax函數
$.ajax({
        url: "mapOfXFU",
        type: 'POST',
        cache: false,
        dataType:'json',
        contentType: "application/x-www-form-urlencoded;charset=utf-8",
        data: {name : 'jack', args : [1, 2, 3], args2 : [{id:1}, {id:2}]},
        success: function (data) {
        },
        error : function(){
        }
    });
// ----------------------------------------------------------------------------

發出該ajax請求後,瀏覽器會將其中的data數據拆分後打包成FormData類型:
>Form Data (6)
name: jack
args[]: 1
args[]: 2
args[]: 3
args2[0][id]: 1
args2[1][id]: 2
// ----------------------------------------------------------------------------
// 後端正確的接口對應
    @RequestMapping("/mapOfXFU")
    @ResponseBody
    public ResponseObject putListMap(@RequestParam(value = "name", required = false)String name, @RequestParam("args[]")List<String> list) {
        // do something you want...

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章