• XML语言的学习记录2-XMLHttpRequest


    学习笔记:XMLHttpRequest

    1. 特点:
      • 在不重新加载页面的情况下更新网页
      • 在页面已加载后从服务器请求数据
      • 在页面已加载后从服务器接收数据
      • 在后台向服务器发送数据
    2. 创建XMLHttpRequest对象
      • xmlhttp=new XMLHttpRequest();
      • IE5 和 IE6,使用 ActiveX 对象
        • xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    3. 经典代码示例:
    1. //创建XMLHttpRequest对象
    2. // 由于window.ActiveXObject的情况仅适用于IE5、IE6,已经过时,不在考虑与关注,
    3. // 使用时仅写window.XMLHttpRequest就行了
    4. if(window.ActiveXObject){ //适用于IE6之前
    5. xmlhr=new ActiveXObject("Microsoft.XMLHTTP");
    6. } else if(window.XMLHttpRequest){
    7. xmlhr=new XMLHttpRequest();
    8. }
    9. if (xmlhr!=null){
    10. xmlhr.onreadystatechange=state_Change;
    11. xmlhr.open("GET",url,true);
    12. xmlhr.send(null);
    13. }
    14. else{
    15. alert("Your browser does not support XMLHTTP.");
    16. }
    17. function state_Change(){
    18. if (xmlhr.readyState==4){// 4 = "loaded"
    19. if (xmlhr.status==200){// 200 = OK
    20. // ...our code here...
    21. document.getElementById('T1').innerHTML=xmlhr.responseText;
    22. }
    23. else{
    24. alert("Problem retrieving XML data");
    25. }
    26. }
    27. }

    XMLHttpRequest 对象的状态(readyState):

    • 0 - 未初始化(uninitialized)。对象已创建或已被 abort() 方法重置,但未调用 open() 方法。
    • 1 - 启动(open)。已调用 open() 方法,但未调用 send() 方法。
    • 2 - 发送(send)。已调用 send() 方法,但未收到响应。
    • 3 - 接收(receiving)。已经接收部分数据。
    • 4 - 完成(Loaded/complete)。已经接收到全部数据,并且可以在客户端使用。

     XMLHttpRequest对象提供的事件处理:

    • onloadstart: 当请求开始时触发;
    • onprogress: 在请求过程中持续触发,用于跟踪进度;
    • onabort: 当请求被中止时触发;
    • onerror: 当请求发生错误时触发;
    • onload: 当请求成功完成时触发;
    • ontimeout: 当请求超时时触发;
    • onloadend: 当请求结束时触发,不论成功或失败都会触发;
    • onreadystatechange:readyState 属性发生变化时触发;

    XMLHttpRequest发起http请求时的方法:

    1. open(method, url, async)
      1. method:  请求方式,"GET"、"POST"等;
      2. url: 请求地址;
      3. boolean,是否异步;当true时,send方法后继续执行,是防止代码停止的最安全的方法;当false时,可以省去onreadystatechange代码,若是请求失败不再执行的话选false。
    2. send(data)
      1. data: 可选参数,发送请求时传递数据;
    3. setRequestHeader(header, value)
      1.  设置请求头消息,如“Content-Type”等;
      2. header: 请求字段,value:字段值
    4. abort()
      1. 终止当前请求;

     XMLHttpRequest接收数据时的方法:

    1. responseText: 返回作为字符串形式的响应数据;
    2. responseXML: 如果服务器返回的数据是 XML 格式,可以使用此属性获取解析后的 XML 文档;
    3. response: 返回一个包含响应数据的属性,其类型根据响应的 Content-Type 自动转换;
    4. status: 返回响应的 HTTP 状态码;
    5. statusText: 返回 HTTP 状态码的文本描述;
    6. getAllResponseHeaders(): 返回包含所有响应头信息的字符串;
    7. getResponseHeader(header): 返回指定响应头的值;

  • 相关阅读:
    Python爬虫知识图谱
    Web3中文|元宇宙购物的兴起
    Java8方法引用和Lambda表达式实例源码+笔记分享
    深度强化学习应用实践技巧
    嵌入式分享合集36
    JavaScript学习笔记(未完待续)
    pod服务质量类别
    c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比
    ReferenceError: primordials is not defined错误解决
    Unity(三十三) VideoPlayer 在Android设备播放
  • 原文地址:https://blog.csdn.net/hua_chi/article/details/136740548