AJAX提交數(shù)據(jù): client: 使用POST方式 request.open("post",url,true|false); 提交參數(shù)時(shí),中文參數(shù)要用userName = encodeURIComponent(userName)進(jìn)行編碼, 再用send("name="+userName)發(fā)送 server: request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String userName = request.getParameter("name"); //正確得到中文參數(shù) client: 使用GET方式 var url = "reg/verify?userName="+encodeURIComponent("中文"); //同樣中文要進(jìn)行編碼 request.open("post",url,true|false); 提交參數(shù)時(shí),中文參數(shù)要用userName = encodeURIComponent(userName)進(jìn)行編碼, 再用send(null)發(fā)送 server: server處理方式同F(xiàn)orm表單GET方式 Form表單提交: client: 使用POST方式 <form action="reg/verify method="post"> <input type="text" name="userName" /> <input type="submit" value="提交"/> </form> server: request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String userName = request.getParameter("name"); //正確得到中文參數(shù) client: 使用GET方式 <form action="reg/verify method="get"> <input type="text" name="userName" /> <input type="submit" value="提交"/> </form> server: request.setCharacterEncoding("UTF-8"); //無(wú)論有沒(méi)有該語(yǔ)句,都要進(jìn)行重新解碼編碼 response.setContentType("text/html;charset=UTF-8"); userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8"); //正確得到中文參數(shù) 使用<a href></a>提交方式:(不推薦使用) client: 使用<a href="reg/verify?userName=寧曉進(jìn)">submit</a>提交方式, 原理:IE8、FF等瀏覽器發(fā)送請(qǐng)求前會(huì)用encodeURIComponent(userName)進(jìn)行編碼,但有些瀏覽器不會(huì)自動(dòng)編碼,服務(wù)器接收會(huì)出錯(cuò),所以最好在發(fā)送中文等特殊字符前手動(dòng)進(jìn)行編碼。 server: server處理方式同F(xiàn)orm表單GET方式 |
|
來(lái)自: 集微筆記 > 《Web開(kāi)發(fā)》