Ajax

作者: 蔡森屿 | 来源:发表于2018-05-14 20:44 被阅读0次

    什么是Ajax?

    ajax是一种技术方案,但并不是一种新技术。它依赖的是现有的CSS/HTML/Javascript,而其中最核心的依赖是浏览器提供的XMLHttpRequest对象,是这个对象使得浏览器可以发出HTTP请求与接收HTTP响应。 实现在页面不刷新的情况下和服务端进行数据交互


    如何实现Ajax?

    • XMLHttpRequest对象
    • fetch

    XMLHttpRequest的用法、属性

    1.创建XHR对象

    var xhr = new XMLHttpRequest();
    
    

    2.xhr.open()

    接受三个参数

    • 1.要发送的请求的类型("get"、"post"),
      1. 请求的URL
      1. 是否异步发送请求的布尔值

    3.xhr.send()

    接受一个参数

    • 1.请求主体发送的数据,不需要则传入(null)

    4.xhr.responseText:作为响应主体被返回的文本

    5.xhr.responseXML:如果响应的内容类型是"text/html"或"application/xml",这个属性中将保存包含着响应数据的XML DOM文档

    6.xhr.status:响应的HTTP状态

    7.xhr.statusText:HTTP状态的说明

    8.xhr.readyState:请求/响应过程的当前活动阶段

    • 0:未初始化。尚未调用open()方法。
    • 1:启动。已经调用open()方法,但尚未调用send()方法。
    • 2:发送。已经调用send()方法,但尚未接收到响应。
    • 3:接收。已经接收到部分响应数据。
    • 4:完成。已经接收到全部数据,而且已经可以在客户端使用。
      说明:可以把xhr.readyState属性和TCP/IP的三次握手类比一下,1,2表示第一次,3表示第二次,4表示第三次。只要readyState属性变一次,就会触发一次readyState事件。还要强调一点的是必须在调用open()之前指定onreadystatechage事件处理程序才能确保跨浏览器兼容性。

    9.xhr.abort():取消异步请求,在接收响应之前使用

    10.xhr.setRequestHeader():设置自定义的请求头部信息。

    在调用open()方法之后,send()方法之前使用。

    11.xhr.timeout:表示请求在等待响应多少毫秒之后就终止。

    12.xhr.overrideMimeType():用于重写响应的MIME类型。

    比如服务器返回的MIME类型时text/plain,但数据实际包含的是XML,根据MIME类型,即使数据是XML,responseXML属性仍然是null,通过调用该方法,可以保证把响应当作XML而非纯文本使用。调用方法必须在send()之前使用

    var xhr = new XMLHttpReququest()
    xhr.open("get","text.php",true)
    xhr.overrideMimeType("text/html")
    xhr.send(null)
    
    

    相关文章

      网友评论

          本文标题:Ajax

          本文链接:https://www.haomeiwen.com/subject/zwxsdftx.html