批改状态:合格
老师批语:现代的异步用原生ajax已不多 , 有空可了解其它实现方式
| 函数名称/关键字 | 释义 |
|---|---|
| JSON.parse() | 将数据从字符串转换为 JavaScript 对象。 |
| createElement() | 通过指定名称创建一个元素 |
| appendChild() | 向节点的子节点列表的末尾添加新的子节点 |
| JSON.stringify() | 将JavaScript 对象转换为字符串 |
- XMLHttpRequest 是浏览器提供的API,处理异步请求,并非js内置对象基本流程:- GET方式:1.创建请求对象:'new XMLHttpRequest()'2.监听请求回调:'onreadystatechange'3.初始化请求参数:'open(请求类型,请求地址,是否异步)'4.发送请求:'send()'- POST方式:1.创建请求对象:'new XMLHttpRequest()'2.监听请求回调:'onreadystatechange'3.初始化请求参数:'open(请求类型,请求地址,是否异步)'4.设置请求头:'setRequestHeader()'5.准备请求参数:可选'var data = ...'6.发送请求:'send(data)'- POST用FormData来组织数据1.创建请求对象:'new XMLHttpRequest()'2.监听请求回调:'onreadystatechange'3.初始化请求参数:'open(请求类型,请求地址,是否异步)'4.使用FormData来组织数据:'var data = new FormData(form);'5.发送请求:'send(data)'
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>ajax-json-formdata</title></head><body><form action="" method="post" onsubmit="return false"><inputtype="email"name="email"placeholder="XXX@xxx.com"requiredautofocus/><input type="password" name="password" placeholder="密码" required /><button>提交</button></form></body><script>//1.先获取表单和表单按钮var form = document.querySelector("form");var btn = document.querySelector("form button");//2.给按钮绑定事件btn.onclick = function () {//1.创建ajax对象var xhr = new XMLHttpRequest();//2.监听请求xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {console.log(xhr.responseText);var res = JSON.parse(xhr.responseText);console.log(res);switch (res.status) {case 0:case 1:error = res.message;break;default:error = "未知错误";}//将error信息渲染到页面中var span = document.createElement("sapn");span.innerHTML = error;span.style.color = "red";form.appendChild(span);}};//3.初始化请求参数xhr.open("POST", "test5.php");//4.使用FormData来组织数据,最终仍是以表单数据方式发送var data = new FormData(form);//data.append("email",form.email.value);//data.append("password",form.password.value);//5.发送请求,发送到服务器上的是json格式xhr.send(data);};</script></html>
<?php//print_r($_POST);$users = [['id'=>1,'email'=>'peter@php.cn','password'=>'123'],['id'=>2,'email'=>'wang@php.cn','password'=>'asw'],['id'=>3,'email'=>'li@php.cn','password'=>'753']];$a = 0;$b = '验证失败';foreach($users as $user){if($user['email'] == $_POST['email'] && $user['password'] == $_POST['password']){$a = 1;$b = '验证通过';}}echo json_encode(['status'=>$a,'message'=>$b]);


Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号