• javaweb01


    Ajax 

     ajax:异步刷新(局部刷新),前端技术。给后台发请求。
     异步:整个页面不会全部刷新,只有某个局部在刷新。
     实例 : 验证用户名是否存在。
    使用ajax发送请求,不能通过后台跳转页面,
    只能通过js跳转,如果需要

    ajax和form表单不能同时使用()
    ajax: 不跳页面
    form :一定会跳转

    只有post请求有请求体
    ajax发起请求,后台给出的响应会回到ajax的响应处理函数中

       readyState:
        0:      xhr被创建成功,open方法未调用
        1:      open被调用,建立的连接
        2:      send被调用,可以获取状态行和响应头
        3:      可以拿到响应体,响应体加载中
        4:      响应体下载完成,可以直接使用responseText。
                 代表请求可以正常发送,响应能够正常接收。

    axios : 对原生ajax的一个封装,应用了大量的ES6语法,promise语法

    1,get请求  后台没有对应的对象来封装 (参数之间没有什么关系), 不能有私密数据
    2, post请求, 后台都是有对象跟着,参数可以封装成一个对象,比如  user的id,name,属性

    * axios发送get请求,
    *   请求中如果有参数,还是一个默认的以文档里的形式发送,和之前的任何一种请求方式没有任         何区别。
    * axios发送post请求,
    *   请求中如果有参数,会把post请求的请求体转成json串,然后再发给后台。

       4种发请求的方式: 

        1、地址栏
        2、a标签
        3、form表单
        4、location.href或window.open()

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. 账号: <input type="text" id="username"> <span id="msg">span> <br>
    9. <input type="button" onclick="valid()" value="验证">
    10. <script>
    11. //ajax 异步刷新
    12. function valid(){
    13. let username = document.querySelector("#username").value;
    14. let msg = document.querySelector("#msg");
    15. //js 原生的ajax,XMLHttpRequest是ajax的支持对象
    16. let xhr = new XMLHttpRequest();
    17. //设置请求的方式和地址
    18. // 发送 GET 请求
    19. xhr.open("GET","valid2.do?username="+username);
    20. // 发送 post请求,需要设置请求头信息
    21. xhr.open("POST","valid2.do");
    22. xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    23. //发请求,并且设置请求体
    24. xhr.send("username="+username+"&password=123456");
    25. xhr.onreadystatechange = function (){
    26. if(this.readyState===4){
    27. switch (this.responseText){
    28. case "1":
    29. msg.innerHTML="用户名可用";
    30. break;
    31. case 0:
    32. msg.innerHTML="用户名已存在";
    33. }
    34. }
    35. }
    36. }
    37. script>
    38. body>
    39. html>

    jquery 的ajax

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. 账号:<input type="text" id="username"><span id="msg">span>
    9. <button id="validBtn">验证button>
    10. <script src="static/js/jquery-3.0.0.min.js">script>
    11. <script>
    12. $(function() {
    13. $("#validBtn").click(function() {
    14. let username = $("#username").val();
    15. let password = "123456";
    16. // formData构建一个表单数据对象
    17. // formData是JS的内置对象,和JQuery无关,和Vue无关
    18. let formData = new FormData();
    19. formData.append("username",username);
    20. formData.append("password",password);
    21. // 发送ajax请求
    22. // 3.完整写法
    23. $.ajax({
    24. url: "valid.do",
    25. type: "post",
    26. data: formData,
    27. success : function(res) {
    28. console.log(res);
    29. },
    30. error : function(res) {
    31. console.log(res);
    32. }
    33. });
    34. // 2.发送post请求
    35. // $.post("valid.do","username=" + username,function (data) {
    36. // if(data == "1") {
    37. // $("#msg").html("用户名可用...")
    38. // }
    39. // if(data == "0") {
    40. // $("#msg").html("用户名已存在...")
    41. // }
    42. // });
    43. // 1.发送get请求
    44. // $.get("valid.do?username=" + username,function(data) {
    45. // // data就是后台回来的响应体
    46. // console.log(data);
    47. // if(data == "1") {
    48. // $("#msg").html("用户名可用...")
    49. // }
    50. // if(data == "0") {
    51. // $("#msg").html("用户名已存在...")
    52. // }
    53. // });
    54. });
    55. })
    56. script>
    57. body>
    58. html>

    转发和重定向的区别?

    1、请求次数

    重定向是浏览器向服务器发送一个请求并收到响应后再次向一个新地址发出请求,转发是服务器收到请求后为了完成响应跳转到一个新的地址;重定向至少请求两次,转发请求一次;

    2,重定向两次请求不共享数据,转发一次请求共享数据

    3,重定向可以跳转到任意url,转发只能跳转本站点资源

    4,重定向是客户端行为,转发是服务器端行为

  • 相关阅读:
    计算机毕业设计 SSM老年公寓管理系统 养老院公寓管理系统 公寓住宿信息管理系统Java Vue MySQL数据库 远程调试 代码讲解
    SpringMVC面试题
    面试整理一
    把请求头信息添加到请求报文中,然后发送请求到淘宝,显示回复信息
    Java和前端都不好找工作,计算机毕业可以干嘛?
    Linux:多行shell命令转成单行命令形式的方法
    idea+tomcat+mysql 从零开始部署Javaweb项目(保姆级别)
    干洗店软件,洗鞋店收银管理系统小程序app
    最佳 DeFi 代币模型:治理代币 or 生产性代币 or veToken?
    Oracle 21 C 安装详细操作手册,并配置客户端连接
  • 原文地址:https://blog.csdn.net/qq_56951318/article/details/126685321