文档章节

XMLHttpRequest

lemos
 lemos
发布于 2016/11/25 13:38
字数 518
阅读 10
收藏 0

主要内容

这里是列表文本这里是列表文本使用XMLHttpRequest 对象
使用XMLHttpRequest 事件
跨域ajax 通信的限制

**ajax **
全名:asynchronous javascript + xml 的简写
改变了web诞生依赖单击等待的模式。

ajax的技术核心:XMLHttpRequest 对象(简称 XHR)。
这是微软引进的一个特性,在这之前ajax的 通信必须借助一些hack 手段进行。

XHR 为向服务器发送请求和接收服务器的响应提供了一系列的接口。能够以异步的方式从服务器获取更多信息。也就是说可以使用XHR 获取新数据,然后通过DOM将数据插入到页面中。

此外,虽然名字中包含XHR,但 ajax通信与数据格式无关,获得的数据不一定就是xml数据。

历史
IE5 是第一款引入XHR的浏览器 。在IE5中 XHR对象是通过MSXML库中的一个ActiveX对象实现的。

在IE5中 可能遇到三种不同版本的XHR 对象。即 MSXML2.XMLHttp、 MSXML2.XMLHttp.3.0、 MSXML2.XMLHttp.6.0。

IE7之前的 版本

要使用MSXML库中的XHR 对象,需要编写一个函数: 这个函数会根据可用的MSXML库创建最新版本的XHR对象。

function createXHR() {
    if(typeof arguments.callee.activeString != "string") {
        var versions = ["MSXML2.XMLLHttp.6.0","MSXML2.XMLLHttp.3.0","MSXML2.XMLLHttp"],
            i,len;

        for (i=0,len= versions.length;i< len;i++) {
            try{
                new ActiveXObject(versions[i]);
                arguments.callee.activeXString = versions[i];
                break;
            } catch (ex) {
                //跳过
            }
        }
    }
    return new ActiveXObject(arguments.callee.activeXString);
}

var xhr = createXHR();

IE7+、FireFox、Operra、Chrome和Safari都支持原生的XHR对象

可以使用XHR构造函数

var xhr = new XMLHttpRequest();

对两者都支持

function createXHR() {
    if (typeof XMLHttpRequest != "undefined"){
        return new XMLHttpRequest();
    } else if (typeof ActiveXObject != "undefined") {
        if(typeof arguments.callee.activeXString != "string"){
            var versions=["MSXML2.XMLLHttp.6.0","MSXML2.XMLLHttp.3.0",
                    "MSXML2.XMLLHttp"],
                i,len;
            for (i=0,len=versions.length;i<len;i++) {
                try{
                    new ActiveXObject(versions[i]);
                    arguments.callee.activeXString = versions[i];
                    break;
                } catch (ex){
                    //跳过
                }
            }
        }
        return new ActiveXObject(arguments.callee.activeXString);
    } else {
        throw new Error("NO XHR object available");
    }
}

var xhr = createXHR();

创建XHR对象

这个程序,首先检测原生的XHR是否存在,如果存在则返回其新实例。 如果不存在,则检测ActiveX 对象。如果这两个都不存在,则抛出一个错误。

© 著作权归作者所有

共有 人打赏支持
上一篇: XHR 的用法
下一篇: json - 使用 json-lib
lemos
粉丝 6
博文 179
码字总数 91193
作品 0
芜湖
后端工程师
私信 提问
XMLHttpRequest对象的创建

首先先介绍一下XMLHttpRequest对象,我们都知道Ajax它并不是单单一门技术,而是几种技术的融合。XMLHttpRequest是Ajax技术体系中最为核心的技术,如果没有XMLHttpRequest,Ajax的其余技术就无...

邵鸿鑫
2014/11/04
0
0
[Ajax-相濡以沫,不如相忘于江湖] Ajax核心: XMLHttpRequest对象

Ajax应用工作模式/过程: 第一步,初始化XMLHttpRequest对象; 第二步,打开与服务器的连接。打开连接时,指定发送请求的方法: 采用GET或POST; 指定是否采用异步方式; 第三部,设置监听XMLHttp...

LSantorini
2016/01/28
129
0
AJAX基础,AJAX验证邮箱是否存在的例子。

例子: 一下为servlet的代码: XMLHttpRequest是ajax的基础,创建xmlhttprequest的方法是:老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象: 在使用时首先判断浏览器是否支持X...

奔跑的码农
2016/08/31
270
0
Ajax发送Post请求

Ajax发送post请求与发送get请求大致类似。以下看详细实例。首先看JSP显示页面: 然后看对发送信息进行处理的Servlet类。由于是POST方式发送信息,所以看一下doPost方法。 @Overrideprotected...

技术mix呢
2017/11/08
0
0
XMLHttpRequest对象如何兼容各浏览器使用?

什么是 XMLHttpRequest 对象? XMLHttpRequest 对象用于在后台与服务器交换数据。 XMLHttpRequest 对象是开发者的梦想,因为您能够: 在不重新加载页面的情况下更新网页 在页面已加载后从服务...

斯武丶风晴
2015/09/15
111
0

没有更多内容

加载失败,请刷新页面

加载更多

延迟队列实现精准的订单超时取消--自我记录备份

订单的超时取消很多系统采用定时任务,实际上达不到要求。我用的是延迟队列,但缺点是只实现了基于jvm的,分布式采用的是修改之前去查询订单状态,以及分布式锁获取的方式来控制,这样获得锁...

checkboxMan
48分钟前
2
0
storm 环境搭建

1.下载解压 下载地址:http://storm.apache.org/downloads.html #下载wget https://www-us.apache.org/dist/storm/apache-storm-1.2.2/apache-storm-1.2.2.tar.gz#解压tar -zxf apache......

MrPei
今天
1
0
Python Base - 读写文件,字符串拼接,单引号

字符转义 读写文件cvs 字符串拼接,替换 import csvcsv_file_name = 'cardbin.csv'# insert into `card_bin_code` (name_of, code_of, card_no_prefix, bank_code) values ('中国银行......

园领T
今天
1
0
基于JQUERY BOOTSTRAP 最简单的loading遮罩层

<%--loading遮罩层--%><div class="modal fade" id="loadingModal" backdrop="static" keyboard="false">   <div style="width: 200px;height:20px; z-index: 20000; position: abs......

颖辉小居
今天
1
0
springboot+kafka

1,首先springboot对kafka的支持也很好,同样是在配置文件中配置好参数,然后就可以直接使用。先说一下,很简单,,,不要怕 2,我用的依赖是 <dependency> <groupId>org.springframewor...

我真是小菜鸡
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部