其实这样设计的初衷是为了在客户端发出请求前,对要发送的数据进行预处理。比如用户密码的加密操作等等。
【Ajax|如何使用Ajax(XMLHttpRequest)发送带参数的请求,以及如何在Servlet中获取请求中的参数】
var xmlhttp;
//设置全局变量function login() {
//这里为了简化代码,没有附上密码加密的代码
var params = "username=" + document.getElementById("username").value
+ "&password=" + document.getElementById("password").value;
sendRequest(
"POST",
"login",
true,
params,
function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("message").innerHTML = xmlhttp.responseText;
}
});
}function sendRequest(method, url, isAsyns, params, action) {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open(method, url, isAsyns);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//这行代码很关键,用来把字符串类型的参数序列化成Form Data
xmlhttp.send(params);
xmlhttp.onreadystatechange = action;
}
public void doPost(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("username");
String password = request.getParameter("password");
......
}
推荐阅读
- JavaWeb|JavaWeb学习——用户注册(14)
- 前端|AJAX学习笔记
- jQuery|jQuery使用手册(七)
- Java|"ruby on rails" with "ajax"
- app|AJAX
- springboot|axios(ajax),springboot 跨域携带session
- Servlet|Servlet的入门(能够运行)
- django|Django Ajax CSRF 认证 通过jquery统一设置 ajax post方法
- Json数据格式和转换插件
- Others|ajax开发框架介绍