Unsupported Media Type 415問題解決辦法(Ajax)


場景:Ajax傳一個json對象到服務器,讓參數自動封裝至與json對象匹配的java對象中。

 

錯誤類型

  • 錯誤類型1:

"status":415

"error":"Unsupported Media Type"

"exception":"org.springframework.web.HttpMediaTypeNotSupportedException"

原因:沒有使用JSON.stringify(rowData)方法將請求參數轉化為json字符串

 

  • 錯誤類型2:

"status":400

"error":"Bad Request"

"exception":"org.springframework.http.converter.HttpMessageNotReadableException"

原因:未使用[contentType : 'application/json',]配置指定請求參數格式。

 

正確代碼

  js代碼:

  rowData:是easyui datagrid表格的一行數據,和服務器的一個java類Condition對象屬性完全匹配。
JSON.stringify(rowData):將rowData對象解析成字符創。
            $.ajax({
                type : 'PUT',
                url : url,
                dataType : 'json',
         contentType : 'application/json',
data : JSON.stringify(rowData), beforeSend : function () { // .... }, success : function (data) { // 返回的RequestResult的json對象 console.log(data); }, });

  spring boot Controller 接收參數的 java代碼:

    @RequestMapping(value = "/test", method = RequestMethod.PUT)
    public @ResponseBody RequestResult modifyCondition(@RequestBody Condition condition) {
        System.out.println("condition:" + condition.toString());
        // 創建假返回數據
        RequestResult result = new RequestResult();
        result.setCode(0);
        result.setMessage("success");
        return result;
    }

    返回結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM