美文网首页程序员
XMLHttpRequest对象

XMLHttpRequest对象

作者: 阿希Mario | 来源:发表于2016-04-08 22:51 被阅读124次

XMLHttpRequest对象

更新于 2016.04.10

XHR的用法

open方法

第一个调用的方法是open()

xhr.open("get", "example.php", false);
  • 第一个参数 - 请求的类型,get,post等
  • 第二个参数 - 请求等url
  • 第三个参数 - 是否异步发送请求

只能向同一个域中使用相同端口和协议的url发送请求,否则会引发跨域问题

这行代码会请求。但是并不会发送这个请求。发送请求要用到第二个方法send()

send方法

第二个调用的方法是send()

xhr.send(null);

这个方法会发送参数里的数据,如果不需要发送数据,一定要填上null,因为有些浏览器必须要求传入这个参数

XHR响应的相关属性

当服务器接到正确请求后会返回响应,响应的数据会自动填充XHR对象的属性,下面是一些响应的相关属性

  1. responseText - 返回的文本
  2. responseXML - 返回的XML DOM文档
  3. status - 响应的状态
  4. statusText - HTTP状态说明

收到响应后,会检查status属性,如果是200,则表示响应成功,responseText属性内容已就绪。如果status属性是304,表示资源没有被修改,可以使用浏览器中缓存的版本。

同步请求的响应

处理同步请求

if((xhr.status >=200 && xhr.status < 300) || xhr.status == 304){
    alert(xhr.responseText);
} else {
    alert("Request was unsuccessful: " + xhr.status);
}

异步请求的响应

检测XHR对象的readyState属性:

  • 0 - 未初始化,尚未调用open()方法
  • 1 - 启动,已经调用open()方法,但尚未调用send()方法
  • 2 - 发送,已经调用send()方法,但尚未接收到响应
  • 3 - 接收,已经接收到部分响应数据
  • 4 - 完成,已经接收到全部响应数据,而且已经可以在客户端使用了。

处理异步请求

在调用open()之前指定onreadystatechange事件处理程序

var xhr = XMLHttpRequest();
xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        if((xhr.status >=200 && xhr.status < 300) || xhr.status == 304){
        alert(xhr.responseText);
    } else {
        alert("Request was unsuccessful: " + xhr.status);
    }
    }
}

abort方法

在接收到响应之前还可以调用abort()方法来取消异步请求

调用这个方法后,xhr对象会停止触发事件,而且也不再允许访问任何与响应有关的对象属性。在终止请求之后,还应该对xhr对象进行解引操作。由于内存原因,不建议重用xhr对象。

相关文章

  • 原生ajax

    XMLHttpRequest 对象   XMLHttpRequest对象是ajax的基础,XMLHttpRequ...

  • XMLHttpRequest对象

    1.取色网站:http://www.colorzilla.com/gradient-editor/ XMLHttp...

  • XMLHttpRequest对象

    XMLHttpRequest对象的创建var xhr=null;if(window.XMLHttpRequest)...

  • XMLHttpRequest对象

    可以称之为 XHR ,在使用这个对象之前,首先要实例化一个XHR对象。 var request;if(window...

  • XMLHttpRequest对象

    XMLHttpRequest对象 更新于 2016.04.10 XHR的用法 open方法 第一个调用的方法是op...

  • XMLHttpRequest 对象

    简介 AJAX是Asynchronous JavaScript and XML的缩写,指的是通过JavaScrip...

  • XMLHttpRequest对象

    一、创建XMLHttpRequest 二、XHR的使用 open() onreadystatechange ()创...

  • Ajax基础

    Http请求 XMLHttpRequest对象 1)、request = new XMLHttpRequest()...

  • AJAX应用的五个步骤

    1.建立xmlHttpRequest对象 if(window.XMLHttpRequest) { xmlHttp ...

  • AJAX

    步骤一:创建XMLHttpRequest对象 variable=new XMLHttpRequest...

网友评论

    本文标题:XMLHttpRequest对象

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