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方式
<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"); //正确得到中文参数
client: 使用GET方式
<form action="reg/verify method="get">
<input type="text" name="userName" />
<input type="submit" value="提交"/>
</form>
server:
request.setCharacterEncoding("UTF-8"); //无论有没有该语句,都要进行重新解码编码
response.setContentType("text/html;charset=UTF-8");
userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8"); //正确得到中文参数
使用<a href></a>提交方式:(不推荐使用)
client:
使用<a href="reg/verify?userName=宁晓进">submit</a>提交方式,
原理:IE8、FF等浏览器发送请求前会用encodeURIComponent(userName)进行编码,但有些浏览器不会自动编码,服务器接收会出错,所以最好在发送中文等特殊字符前手动进行编码。
server:
server处理方式同Form表单GET方式
AJAX提交数据
最新推荐文章于 2022-04-13 16:24:25 发布