AJAX提交数据:
client: 使用POST方式
request.open("post",url,true|false);
提交参数时,中文参数要用userName=encodeURIComponent(userName)进行编码,
再用send("name="+userName)发送
server:
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String userName=request.getParameter("name"); //正确得到中文参数
client: 使用GET方式
var url="reg/verify?userName="+encodeURIComponent("中文"); //同样中文要进行编码
request.open("post",url,true|false);
提交参数时,中文参数要用userName=encodeURIComponent(userName)进行编码,
再用send(null)发送
server:
server处理方式同Form表单GET方式
Form表单提交:
client: 使用POST方式
server:
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String userName=request.getParameter("name"); //正确得到中文参数
client: 使用GET方式
server:
request.setCharacterEncoding("UTF-8"); //无论有没有该语句,都要进行重新解码编码
response.setContentType("text/html;charset=UTF-8");
userName=new String(userName.getBytes("ISO-8859-1"), "UTF-8"); //正确得到中文参数
使用提交方式:(不推荐使用)
client:
使用submit提交方式,
原理:IE8、FF等浏览器发送请求前会用encodeURIComponent(userName)进行编码,但有些浏览器不会自动编码,服务器接收会出错,所以最好在发送中文等特殊字符前手动进行编码。
server:
server处理方式同Form表单GET方式