天天看點

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

    }
           

繼續閱讀