Ajax的post請求屬性contentType若不是“application/x-www-form-urlencode”,若是“application/json”時,HttpServletRequest的實現類不會解析表單數據來放在request parameter map中,所以通過request.getParameter("XX")怎么也接收不到數據。代碼如下:
js代碼:
function newFunc(){
var params = {};
params.aa = ‘XX’;
$.ajax({
async:false,
contentType:'application/json',
url:projectUrl+'chk/ajax/ChkMessage.xhtml',
type:'post',
data:params,
dataType:'json'
});
}
java代碼:
@RequestMapping("/{channel/ChkMessage.xhtml}")
public void chkUserMessage(HttpServletRequest request,HttpSerlvetResponse response){
String aa = request.getParameter("aa");//此處的aa為null
}
解決方式:
①將ajax換成get請求;
②contentType不使用”application/json”.