在使用jquery实现网站的异步交互时,常用的两个函数为get和post方法,get方法使用很简单,直接提交get请求即可,如果有参数,直接追加到url后面就行,但是使用post方法时,传递参数,需要和url分开写,使得传参变得麻烦了,不过这样做起来更安全一些,而且出现中文乱码的概率也要低一些(get方法传中文很多情况下会出现乱码现象),这里就详细介绍一下post是怎样传递参数的。
首先写一个html代码如下:
复制代码 代码如下:
<html>
<head>
<title>jquery post方法测试</title>
<script language="javascript" src="https://www.jb51.net/jquery.min.js"></script>
<script type="text/javascript">
function testPost(){
var name=$("#name");
var pass=$("#pass");
$.post("servlet/login",{name:name,pass:pass},postcb);
}
function postcb(date){
alert(date);
}
</script>
</head>
<body>
<input/>
<input/>
<input type="button" value="测试"/>
</body>
</html>
服务器端servlet中post方法代码如下(servlet类名为login,配置其访问路径为servlet/login)
复制代码 代码如下:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb18030");
String name= request.getParameter("name");
String pass= request.getParameter("pass");
out.print("name:"+name+"pass:"+pass);
out.flush();
out.close();
在客户端运行以上的html代码后,点击“测试”按钮,就会弹出 name:输入的用户名pass:输入的密码 对话框,通过分析html代码可以知道,post方法传递参数使用的是数据json格式。
补充:
对于出现汉字乱码的情况来说,ajax默认的汉字编码是utf-8,post接收页面的编码应该也保持同样的编码。