登录  /  注册
博主信息
博文 55
粉丝 3
评论 0
访问量 66873
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Ajax异步编程
王佳祥
原创
866人浏览过

Ajax异步编程

一、Ajax是什么?

  • ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换。ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。

二、Ajax常用函数和关键字

函数名称/关键字 释义
JSON.parse() 将数据从字符串转换为 JavaScript 对象。
createElement() 通过指定名称创建一个元素
appendChild() 向节点的子节点列表的末尾添加新的子节点
JSON.stringify() 将JavaScript 对象转换为字符串

三、ajax与json实战

1.ajax的GET和POST两种方式

  1. - XMLHttpRequest 是浏览器提供的API,处理异步请求,并非js内置对象
  2. 基本流程:
  3. - GET方式:
  4. 1.创建请求对象:'new XMLHttpRequest()'
  5. 2.监听请求回调:'onreadystatechange'
  6. 3.初始化请求参数:'open(请求类型,请求地址,是否异步)'
  7. 4.发送请求:'send()'
  8. - POST方式:
  9. 1.创建请求对象:'new XMLHttpRequest()'
  10. 2.监听请求回调:'onreadystatechange'
  11. 3.初始化请求参数:'open(请求类型,请求地址,是否异步)'
  12. 4.设置请求头:'setRequestHeader()'
  13. 5.准备请求参数:可选'var data = ...'
  14. 6.发送请求:'send(data)'
  15. - POSTFormData来组织数据
  16. 1.创建请求对象:'new XMLHttpRequest()'
  17. 2.监听请求回调:'onreadystatechange'
  18. 3.初始化请求参数:'open(请求类型,请求地址,是否异步)'
  19. 4.使用FormData来组织数据:'var data = new FormData(form);'
  20. 5.发送请求:'send(data)'

2.ajax实战

  • demo7.html
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>ajax-json-formdata</title>
  7. </head>
  8. <body>
  9. <form action="" method="post" onsubmit="return false">
  10. <input
  11. type="email"
  12. name="email"
  13. placeholder="XXX@xxx.com"
  14. required
  15. autofocus
  16. />
  17. <input type="password" name="password" placeholder="密码" required />
  18. <button>提交</button>
  19. </form>
  20. </body>
  21. <script>
  22. //1.先获取表单和表单按钮
  23. var form = document.querySelector("form");
  24. var btn = document.querySelector("form button");
  25. //2.给按钮绑定事件
  26. btn.onclick = function () {
  27. //1.创建ajax对象
  28. var xhr = new XMLHttpRequest();
  29. //2.监听请求
  30. xhr.onreadystatechange = function () {
  31. if (xhr.readyState === 4 && xhr.status === 200) {
  32. console.log(xhr.responseText);
  33. var res = JSON.parse(xhr.responseText);
  34. console.log(res);
  35. switch (res.status) {
  36. case 0:
  37. case 1:
  38. error = res.message;
  39. break;
  40. default:
  41. error = "未知错误";
  42. }
  43. //将error信息渲染到页面中
  44. var span = document.createElement("sapn");
  45. span.innerHTML = error;
  46. span.style.color = "red";
  47. form.appendChild(span);
  48. }
  49. };
  50. //3.初始化请求参数
  51. xhr.open("POST", "test5.php");
  52. //4.使用FormData来组织数据,最终仍是以表单数据方式发送
  53. var data = new FormData(form);
  54. //data.append("email",form.email.value);
  55. //data.append("password",form.password.value);
  56. //5.发送请求,发送到服务器上的是json格式
  57. xhr.send(data);
  58. };
  59. </script>
  60. </html>
  • test5.php
  1. <?php
  2. //print_r($_POST);
  3. $users = [
  4. ['id'=>1,'email'=>'peter@php.cn','password'=>'123'],
  5. ['id'=>2,'email'=>'wang@php.cn','password'=>'asw'],
  6. ['id'=>3,'email'=>'li@php.cn','password'=>'753']
  7. ];
  8. $a = 0;
  9. $b = '验证失败';
  10. foreach($users as $user)
  11. {
  12. if($user['email'] == $_POST['email'] && $user['password'] == $_POST['password']){
  13. $a = 1;
  14. $b = '验证通过';
  15. }
  16. }
  17. echo json_encode(['status'=>$a,'message'=>$b]);




批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:现代的异步用原生ajax已不多 , 有空可了解其它实现方式
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

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

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学