• Ajax异步请求的五个步骤


    AJAX(Asynchronous JavaScript and XML):是指一种创建交互式网页应用的网页开发技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这就意味着可以在不重新加载整个网页的情况下,对网页的局部进行更新。


    1.建立xmlHttpRequest异步对象

     const xhr=new XMLHttpRequest();
    
    • 1

    2.创建HTTP请求(设置请求方法和URL)

    //get方式
    xhr.open('GET',URL);
    
    
    //post方式发送数据,需要设置请求头
    xhr.open('POST',URL);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    除了method和URL两个必选参数外还有三个可选参数:flag,name,password

    flag:参数值为布尔类型,用于指定是否用异步方式。true表异步,false表同步,默认为true。

    name:

    3.发送数据

    //get不需要传递参数
    xhr.send(null);
    
    //post必须有参数
    xhr.send('a=100&b=200&c=300');
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.设置回调函数

    xhr.onreadystatechange = callback;
    
    • 1

    5.在回调函数中对不同的响应状态进行处理

    function callback() {
         //判断响应状态码
         if(xhr.readyState===4){
            // 判断交互是否成功
            if(xhr.status>=200&&xhr.status<300){
                 // console.log(xhr.status);//状态码
                 // console.log(xhr.statusText);//状态字符串
                 // console.log(xhr.getAllResponseHeaders());//所有响应头
                 // console.log(xhr.response);//响应体
    
                 // 获取服务器响应的数据
                 result.innerHTML=xhr.response;
            }else{
    
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    ajax中的readyState属性

    • 0:未初始化。尚未调用 open()方法。

    • 1:启动。已经调用 open()方法,但尚未调用 send()方法。

    • 2:发送。已经调用 send()方法,但尚未接收到响应。

    • 3:接收。已经接收到部分响应数据。

    • 4:完成。已经接收到全部响应数据,而且已经可以在客户端使用了。

    只有在XMLHttpRequest对象完成了以上5个步骤之后,才可以获取从服务器端返回的数据。

    ajax中的状态码(200-300则表示响应成功)

    400:请求参数错误
    401:无权限访问
    404:访问的资源不存在


    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    直观了解PostgreSQL中表膨胀的原理
    Java面试题之“==“和“equals“和HashCode的区别
    Dijkstra与Bellman-Ford算法对比
    7系列FPGA内部的block ram资源和原语RAMB18E1深入分析
    内存逃逸分析
    坐标正反算(含高程),把要素内置化(无需改程序文件,即可更换路线,同时存两条线要素
    延时队列java
    斜率优化dp
    HTML+CSS-Day10
    docker、docker-compose安装和常用命令
  • 原文地址:https://blog.csdn.net/segegefe/article/details/126098557