XMLHttpRequest

XMLHttpRequest

  • 创建:
var createXHR = function(){
    var xhr = false;
    try{
        xhr = new XMLHttpRequest();//尝试直接创建,适用于IE以外的大多数浏览器
    }
    catch(e){
        try{
            xhr = new ActiveXObject('Mxsm112.XMLHTTP');//尝试使用较新版本IE的创建方式
        }
        catch(e){
            try{
                xhr = new ActiveXObject('Microsoft.XMLHTTP');//尝试使用较老版本IE的创建方式
            }
            catch(e){
                xhr = false;//创建失败,返回false提示
                console.log(e.name + ' : ' + e.message);
            }
        }
    }
    return xhr;
}
  • 方法:
  • open(method,url,async) :
  • method指定请求使用的方法,包括GET、POST、HEAD、DELETE;
  • url即请求地址;
  • async规定是否启用异步请求,异步请求将直接返回,需要使用事件监听器在响应就绪后动态处理,默认为true;
  • send() : 发送请求并根据同步异步设定适时返回,接受一个可选的请求体作为参数(在GET和HEAD中被忽略);
  • abort() : 立即中断已经发送的请求;对应请求的就绪状态被置为0,但不会触发readystatechange事件;
  • onreadystatechange() : 当readyState发生变化时执行的事件处理函数;
  • ontimeout() : 请求超时后调用的方法;
  • 属性:
  • readyState:
  • 0 请求未初始化,open()未调用;
  • 1 请求已建立,未发送,send()尚未调用;
  • 2 请求已发送,处理中,可以从响应中获取首部(header)和状态(status);
  • 3 响应处理中,响应中已有部分数据可用,但未完全就绪;
  • 4 响应已就绪;
  • 注意,各浏览器中对就绪状态的处理并不一致,不能过于依赖状态来执行操作,测试在chrome(53)和Firefox(43)中onreadystatechange方法只能在状态1和4时被调用,IE(11)则更奇特,依次出现了1、1、2、3、4的状态,1出现了两次。
  • 无法通过onreadystatechange()仅在就绪状态发生改变时被调用,但在readyState被在请求中断(abort()被调用)被置0时不会触发该方法,因而无法通过该方法获取readyState为0的状态,只能在请求未初始化或被中断时手动获取;
  • upload:
  • 返回一个代表上传过程的对象,可以在其上注册事件监听器以追踪上传进程;
  • 可选事件监听器包括
  • onloadstart : the fetch starts (请求开始装载数据时调用的方法)
  • onprogress : data transfer is going on (周期性调用的反馈上传进度的方法)
  • onabort : the fetch operation was aborted (请求中断后调用的方法)
  • onerror : the fetch failed (请求中出现错误时调用的方法)
  • onload : the fetch succeeded (请求在抓取内容成功后返回时调用的方法)
  • ontimeout : the fetch operation didn't complete by the timeout the author specified (请求超时调用的方法)
  • onloadend : the fetch operation completed (either failed or succeeded)
  • response:
  • 返回相应的实体主体(response entity body),具体类型取决于responseType的值,在1.0中只有DOMString和 Document,在2.0中扩充了Blob、FormData、ArrayBuffer、File等;
  • 当responseType为‘text’或空,response在请求处于loading状态时保存部分响应文本(response text);
  • responseType: 返回一个定义响应实体类型的枚举值
  • responseText: 返回一个包含响应文本(response as text)的DOMString,或者null;
  • responseXML: 返回一个包含响应的Document,或者null(请求未发送,响应无法解析);
  • status: 返回响应的状态码;
  • statusText: 返回响应的状态码及服务器的反馈信息;
  • timeout: 定义请求在被终结前可以维持的最大时长,以毫秒为单位;
  • withCredentials: 一个布尔值,指示了Cross Site Access Control请求是否需要使用证书(如cookies,授权首部(authorization headers)或者TLS用户证书等);该值的设定对同域请求没有影响;
  • In addition, this flag is also used to indicate when cookies are to be ignored in the response. The default is false. XMLHttpRequest from a different domain cannot set cookie values for their own domain unless withCredentials is set to true before making the request. The third-party cookies obtained by setting withCredentials to true will still honor same-origin policy and hence can not be accessed by the requesting script through document.cookie or from response headers.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容