1. 程式人生 > >Ajax向cntroller傳值,傳值方式以及資料型別的對照

Ajax向cntroller傳值,傳值方式以及資料型別的對照

  • ajax向controller傳值 //向後臺傳送處理資料 //contentType: 告訴伺服器,我要發什麼型別的資料 // dataType:告訴伺服器,我要想什麼型別的資料,如果沒有指定,那麼會自動推斷是返回 XML,還是JSON,還是script,還是String。
    • 常見contentType
 - 常見的媒體格式型別如下:

    text/html : HTML格式
    text/plain :純文字格式      
    text/xml :  XML格式
    image/gif :gif圖片格式    
    image/jpeg :jpg圖片格式 
    image/png:png圖片格式
   以application開頭的媒體格式型別:

   application/
xhtml+xml :XHTML格式 application/xml : XML資料格式 application/atom+xml :Atom XML聚合格式 application/json : JSON資料格式 application/pdf :pdf格式 application/msword : Word文件格式 application/octet-stream : 二進位制流資料(如常見的檔案下載) application/x-www-form-urlencoded : <form encType=””>
中預設的encType,form表單資料被編碼為key/value格式傳送到伺服器(表單預設的提交資料的格式) 另外一種常見的媒體格式是上傳檔案之時使用的: multipart/form-data : 需要在表單中進行檔案上傳時,就需要使用該格式
  • ajax提交
 $.ajax({
            type: "POST", //用POST方式傳輸
            dataType: "Json", //伺服器返回的資料型別 可選XML ,Json jsonp script html text等
            contentType:"application/x-www-form-urlencoded;charset=UTF-8"
,//預設值可根據controller map 的consumes的要求設定 url: 'http://localhost:8080/user/sendCode', //目標地址 data:{mail:email} ,//可以是"mail="+email 或者 {"mail":email} error: function (XMLHttpRequest, textStatus, errorThrown) { alert("錯誤!"+XMLHttpRequest+textStatus+errorThrown); }, success: function (msg){ console.log(msg); alert(msg); } });
@RequestMapping( value = "/sendCode")
    @ResponseBody//指定返回資料為json,不指定的話請求包含dataType為json的請求不能獲得資料
    public Info sendCode(@RequestParam String mail, HttpSession session) {
    //程式碼
    }
  • controller獲取資料
當請求contentType為application/json時引數用@RequsetBody註解,引數是json時可以直接用實體類接收引數,以下程式碼ActiveCodeBody 為實體類,注意實體類一定要包含預設無參建構函式
 //consumes: 指定處理請求的提交內容型別(Content-Type),例如application/json, text/html;
    //produces:    指定返回的內容型別,僅當request請求頭中的(Accept)型別中包含該指定型別才返回
    @PostMapping(value = "/postGetCode",produces= "application/json;charset=UTF-8",consumes = "application/json")
    @ResponseBody
    public Info verifyEmail(@RequestBody ActiveCodeBody body){
    //程式碼
    }
為application/x-www-form-urlencoded時用@RequestParam