主要包括post请求参数处理和参数传递问题。
- post请求参数处理
// 1、请求参数拼接
var param = "uname="+uname + "&password=" + password;
xhr.open("post", "01test.html", true);
// 2、需要设置请求头
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// 3、发送请求时需要传递请求参数,且不需要转码
xhr.send(param);//post请求参数,不需要转码
- post请求参数传递
// 在执行请求发送时,必须传递参数为null
xhr.send(null);//get请求,这里需要传递参数null
完整示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>请求参数分析</title>
<script type="text/javascript">
/**
* 使用Ajax发送请求的步骤:
*/
//1、创建XMLHttpRequest对象
// var xhr = new XMLHttpRequest();// IE6不支持
// 兼容性处理方法
var xhr = null;
if (window.XMLHttpRequest){
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
// 另一种方法
// try {
// xhr = new XMLHttpRequest();
// } catch (e){
// xhr = new ActiveXObject("Microsoft.XMLHTTP");
// }
// 2、准备发送
var param = "uname="+uname + "&password=" + password;
// xhr.open(method, url, async);
/**
* method 请求方式
* url 请求路径
* async 是否异步
*/
xhr.open("post", "01test.html", true);
// 3、执行发送
// 需要设置请求头
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(param);//post请求参数,不需要转码
// 4、指定回调函数
xhr.onreadystatechange = function (){
if (xhr.readyState == 4){
if (xhr.status == 200){
var data = xhr.responseText;
if (data == 1){
console.log("请求成功");
} else {
console.log("用户名或密码错误");
}
}
}
};
</script>
</head>
<body>
</body>
</html>