经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
WEB前端第五十五课——Ajax请求
来源:cnblogs  作者:后来喵  时间:2021/1/11 9:46:58  对本文有异议

1.会话Session、缓存Cookie

  session,可以理解为一种不断验证口令以获得用户持久链接的“访问机制”。

  cookie,是当前访问的页面,由后台发往前台页面数据时所夹带的一小段信息。

  原理说明:

    当后台返回给前台数据的时候,添加的一段“持久”的信息,

    因此,这段信息必须在PHP后台代码中插入添加。

  相关技术:

    ① PHP中“$_GET”和“$_POST”对象,用于在PHP中获取 get 和 post 请求的数据对象;

    ② PHP中的“time()”方法用户获取当前的时间戳,单位是秒s,支持加减法;

    ③ PHP中 setcookie('key' , 'value' , 过期时间),用于设置缓存;

    ④ HTML中 document.cookie 用于获取页面所保存的 cookie 值,类型是字符串。

2.jqAjax

  ajax是一种前后台数据交互的手段。

  原生的ajax实现比较麻烦,需要借助 xmlhttprequest对象构建。

  JQajax则是jQuery已经封装好的现成方法。

  说明:

    ① get无参请求,一般用于前台界面向后台请求获取数据,但不会向后台发送数据;

      $_GET是PHP中的内置对象,用于接受前台发送过来的 get 请求数据包;

    ② get有参请求,一般用于前台界面向后台有条件(参数)的请求获取数据,一般参数都比较小;

    ③ post请求,一般用于登录、注册等保密性较高的场景;

      $_POST是PHP中的内置对象,用于接受前台发送过来的 post 请求数据包;

    ④ echo 用于返回前端请求的指定数据;

    ⑤ json_encode对象,用于将数组或对象等复杂值转换成 json 格式的数据。

  代码示例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Ajax请求</title>
  6. <script src="JScodeFile/jquery-1.8.3.js"></script>
  7. </head>
  8. <body>
  9. <span>Name</span><input type="text" class="userName"><br>
  10. <span>Code</span><input type="password" class="userCode"><br>
  11. <button>Get无参数</button>
  12. <button>Get有参数</button>
  13. <button>Post请求</button>
  14. <script>
  15. var $userName = $('.userName');
  16. var $userCode = $('.userCode');
  17. var $btns = $('button');
  18. // Get无参数请求
  19. $btns.eq(0).click(function () {
  20. $.ajax({
  21. //定义请求方式为 get
  22. type:'get',
  23. //设置请求发送的后台地址
  24. url:'20210106Ajax.php',
  25. //定义数据交互的格式
  26. dataType:'json',
  27. //设置回调函数,后台返回数据时,函数自动执行。
  28. success:function (res) {
  29. console.log(res);
  30. console.log(res.msg2);
  31. }
  32. });
  33. })
  34. // Get有参数请求
  35. $btns.eq(1).click(function () {
  36. $.ajax({
  37. //定义请求方式为 get
  38. type:'get',
  39. //设置请求发送的后台地址,以及需要发送的参数值,使用“?”及字符串拼接的形式
  40. url:'20210106Ajax.php?userName='+$userName.val()+"&userCode="+$userCode.val(),
  41. //定义数据交互的格式
  42. dataType:'json',
  43. //设置回调函数,后台返回数据时,函数自动执行。
  44. success:function (res) {
  45. console.log(res);
  46. console.log(res.msg2);
  47. }
  48. });
  49. })
  50. // Post请求
  51. $btns.eq(2).click(function () {
  52. $.ajax({
  53. //定义请求方式为 get
  54. type:'post',
  55. //设置请求发送的后台地址,以及需要发送的参数值,使用“data”发送参数
  56. url:'20210106Ajax.php',
  57. data:{
  58. uName:$userName.val(),
  59. uCode:$userCode.val(),
  60. },
  61. //定义数据交互的格式
  62. dataType:'json',
  63. //设置回调函数,后台返回数据时,函数自动执行。
  64. success:function (res) {
  65. console.log(res);
  66. console.log(res.msg2);
  67. }
  68. });
  69. })
  70.  
  71. </script>
  72. </body>
  73. </html>
  1. <?php
  2. /*
  3. // get 无参数请求
  4. $backData1 = array ('msg1'=>'oneSuccess','msg2'=>'twoSuccess');
  5. //使用 json_encode()将数据转换成 json 格式,并通过 echo 将其返回给前台。
  6. echo json_encode($backData1);
  7.  
  8. // get 有参数请求
  9. $backData2 = array ('msg1'=>'oneSuccess','msg2'=>$_GET);
  10. //使用 json_encode()将数据转换成 json 格式,并通过 echo 将其返回给前台。
  11. echo json_encode($backData2);
  12. */
  13. // post 请求
  14. $backData2 = array ('msg1'=>'oneSuccess','msg2'=>$_POST);
  15. //使用 json_encode()将数据转换成 json 格式,并通过 echo 将其返回给前台。
  16. echo json_encode($backData2);
  17. ?>

 3.登录交互案例

  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Test</title>
  5. <script src="JScodeFile/jquery-1.8.3.js"></script>
  6. </head>
  7. <body>
  8. <span>Name:</span><input type="text" class="userName">
  9. <span>Code:</span><input type="password" class="userCode">
  10. <button>用户登录</button>
  11. <script>
  12. $('button').click(function () {
  13. $.ajax({
  14. type:'post',
  15. url:'20210106Ajax.php',
  16. data:{
  17. userName:$('.userName').val(),
  18. userCode:$('.userCode').val(),
  19. },
  20. dataType:'json',
  21. success:function (fBack) {
  22. console.log(fBack);
  23. if (fBack.result==1){
  24. alert('登录成功!')
  25. }else{
  26. alert('用户名或密码错误!')
  27. }
  28. },
  29. })
  30. });
  31.  
  32. </script>
  33. </body>
  34. </html>
  1. <?php
  2. $usName = $_POST['userName'];
  3. $usCode = $_POST['userCode'];
  4. $nameList = array('Rebecca'=>'111111');
  5. $fBack = array();
  6. if($usCode==$nameList[$usName]){
  7. $fBack['result']=1;
  8. }else{
  9. $fBack['result']=0;
  10. };
  11. echo json_encode($fBack);
  12. ?>

 

原文链接:http://www.cnblogs.com/husa/p/14239104.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号