ajax往后台傳json格式數據報415錯誤


問題描述:

  ajax往后台傳json格式數據報415錯誤,如下圖所示

頁面415錯誤1

頁面代碼

function saveUser(){
	var uuId = document.getElementById("uuid").value;
	var idCard = document.getElementById("idCard").value;
	alert(uuId+idCard);
//	var result = new Object();
//	result.uuId = uuId;
//	result.idCard = idCard;
//	var saveData = JSON.stringify(result);
//	alert(saveData);
	$.ajax({
		url : "xdds/saveUser.do?random=" + Math.random(),
		type : "post",
		data : {"uuid" : uuId,"idCard" : idCard},
//		data:saveData,
		dataType : 'json',
//		contentType : "application/json",
		success:function(data){
			
		}
	});
}

  后台代碼

@RequestMapping(value = "/saveUser.do", method = { RequestMethod.POST })
    @ResponseBody
    public  Map<String, Object> saveUser (@RequestBody MapUser user){
        Map<String, Object> map = new HashMap<String, Object>();
        System.out.println(user.getUuid()+user.getIdCard());
        map.put("result", "fda");
        return map ;
        
    }

錯誤分析:415 (不支持的媒體類型) 請求的格式不受請求頁面的支持

正確的json格式{key:value, key:value}key和value應該都帶雙引號。上面的前台代碼data中的數據value不帶雙引號,所以導致報錯(因為前面接觸的項目這樣寫是沒問題)

所以初步分析可能應為框架的問題,有的框架可以將

data : {"uuid" : uuId,"idCard" : idCard}這種封裝成正確的json格式

。具體原因還不知道,博主也是小白,等博主搞清楚會分享出來的

 

解決辦法:將前台注釋的代碼打開

var saveData = JSON.stringify(result)
這個函數可以轉化成真確的json格式。

ps:小白一個,有不對的地方請大神指正;有大神知道具體原因,還請指明,不甚感激


ps:本文為博主原創,轉載請注明出處:http://www.cnblogs.com/Y-zhiwei/。


免責聲明!

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



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