批改状态:合格
老师批语:get不是保密性差, 压根就不保密, 适合发送一些查询条件,或者制作url收藏标签
页面向服务器请求数据有两种方式:GET请求 与 POST请求
GET请求会把数据之间放在url上进行传输,保密性差
POST请求会把数据隐藏起来传输,且传回要用JSON转换格式,保密性强
一、GET请求:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax-GET</title>
</head>
<body>
<label for="user-id">请输入ID</label>
<input type="text" id="user-id" name="user_id" autofocus>
<p id="tips"></p>
<script>
var input= document.getElementById('user-id');
var tips = document.getElementById('tips');
// 1、创建、请求对象
var request=new XMLHttpRequest();
input.addEventListener('keypress',getUserInfo,false);
function getUserInfo(ev) {
if (ev.key === 'Enter'){
switch (true) {
case input.value.length === 0:
tips.innerHTML = '<span style="color:red">不能为空</span>';
return false;
case isNaN(input.value):
tips.innerHTML = '<span style="color:red">必须是整数</span>';
return false;
default:
// 2.监听:成功回调
request.addEventListener('readystatechange', successCallback, false);
// 3.设置请求参数(请求类型,请求服务器上的就脚本程序,是否是异步)
var data =encodeURIComponent( input.value);//进行编码处理
request.open('GET', 'php/user_info.php?user_id='+data, true);
// 4. 发送,异步请求
request.send(null);
}
}
function successCallback(ev) {
if (request.readyState === 4) {
tips.innerHTML=request.responseText
}
}
input.addEventListener('input',function (ev) {
tips.innerHTML = null;
},false);
}点击 "运行实例" 按钮查看在线实例
2.POST请求

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax-POSE</title>
</head>
<body>
<h2>用户登录</h2>
<form action="" name="login">
<p>
<label for="username">用户:</label>
<input type="text" name="username" id="username" placeholder="UserName">
</p>
<p>
<label for="email">邮箱:</label>
<input type="text" name="email" id="email" placeholder="example@email.com">
</p>
<p>
<label for="password">密码:</label>
<input type="password" name="password" id="password" placeholder="******">
</p>
<p>
<label for="remember">记住我:</label>
<select name="remember" id="remember">
<option value="1" name="day" selected>一天</option>
<option value="7" name="week">一星期</option>
<option value="30" name="month">一个月</option>
</select>
</p>
<p>
<button type="button" name="submit">提交</button>
</p>
</form>
<script>
// 1.获取表表单元素
var login = document.forms.namedItem('login');
var btn = login.submit;
var request = new XMLHttpRequest();
// 2.对表单内容进行验证
login.username.addEventListener('blur',isEmpty,false);
login.email.addEventListener('blur',isEmpty,false);
login.password.addEventListener('blur',isEmpty,false);
function isEmpty(ev) {
if (ev.target.value.length === 0){
// 1.创建非空验证的提示信息
if (ev.target.nextElementSibling === null){
var tips = document.createElement('span');
tips.style.color='red';
switch (ev.target.name) {
case 'username':
tips.innerText = '用户名不能为空';
break;
case 'email':
tips.innerText = '邮箱不能为空';
break;
case 'password':
tips.innerText = '密码不能为空';
break;
default:
tips.innerText = '未知错误';
}
ev.target.parentNode.appendChild(tips);
// 锁定焦点
ev.target.focus();
}
}
}
//3. 移除提示信息
login.username.addEventListener('input',clearTips,false);
login.email.addEventListener('input',clearTips,false);
login.password.addEventListener('input',clearTips,false);
function clearTips(ev) {
var tips = ev.target.nextElementSibling;
if (tips !== null) {
tips.parentNode.removeChild(tips);
}
}
// 4.Ajax 验证
btn.addEventListener('click',check,false);
function check(ev) {
var username = login.username.value;
var email = login.email.value;
var password=login.password.value;
var remember=login.remember.value;
if (username.length === 0 || email.length === 0 || password.length === 0){
btn.removeEventListener('click',check,false);
// 事件模拟
var blurEvent = new Event('blur');
login.username.dispatchEvent(blurEvent);
return false;
}
// 监听成功回调
request.addEventListener('readystatechange',successCallback,false);
// 设置请求参数
request.open('POST','php/check.php',true);
// 因为是POST,设置请求头
request.setRequestHeader('content-type','application/x-www-form-urlencoded;charset=utf-8');
// 发送 异步请求
var data = 'username='+username+'&email='+email+'&password='+password+'&remember='+remember;
request.send(data);
}
function successCallback(ev) {
if (request.readyState === 4) {
console.log(request.responseText);
}
}
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号