文档章节

XMLHttpRequest

lemos
 lemos
发布于 2016/11/25 13:38
字数 518
阅读 22
收藏 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
粉丝 9
博文 226
码字总数 106094
作品 0
芜湖
后端工程师
私信 提问
加载中

评论(0)

AJAX - 创建 XMLHttpRequest 对象

XMLHttpRequest 是 AJAX 的基础。 XMLHttpRequest 对象 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。 XMLHttpRequest 用于在后台与服务器交换数据。这意味...

borter
03/25
0
0
XMLHttpRequest对象的创建

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

邵鸿鑫
2014/11/04
0
0
原生 XMLHttpRequest

一、什么是XMLHttpRequest? XHR英文全名XmlHttpRequest,中文可以解释为可扩展超文本传输请求。Xml可扩展标记语言,Http超文本传输协议,Request请求。XMLHttpRequest对象可以在不向服务器提...

osc_779ncf3o
2018/08/12
1
0
[Ajax-相濡以沫,不如相忘于江湖] Ajax核心: XMLHttpRequest对象

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

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

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

奔跑的码农
2016/08/31
304
0

没有更多内容

加载失败,请刷新页面

加载更多

springBoot之配置文件的读取以及过滤器和拦截器的使用

springBoot之配置文件的读取以及过滤器和拦截器的使用 前言 在之前的学习springBoot中,成功的实现了Restful风格的基本服务。但是想将之前的工程作为一个项目来说,那些是仅仅不够的。可能还...

鹏十二
23分钟前
23
0
Springboot在Idea Intellij汉字Unicode读取乱码问题

问题核心:Unicode编码中的字母需要小写。比如\u8bbe\u5907\u53f7 首先,了解清楚Unicode编码是什么东西。请读者自己搜索。 然后,我们要清楚springboot是怎么加载配置文件的。兴趣的读者可以...

sunranhou
28分钟前
13
0
服务器管理规范

1、为了保证服务器的安全,服务器的账号密码不能随便透露给他人,必须指定人员负责管理。 2、服务器至少要安装360安全卫士。以此保障服务器的安全。 3、服务器要设置定期重启(可以使用命令 ...

ethanleellj
30分钟前
31
0
工厂方法

1. 介绍 工厂方法模式(FACTORY METHOD)是一种常用的类创建型设计模式,此模式的核心精神是封装类中变化的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期...

steven-黄笑笑
32分钟前
19
0
Ubuntu 18.04 安装GRASS GIS 7.8.3

在之前的Ubuntu 16.04 安装 Grass gis 7.6.1中主要是通过添加ppa源的方法安装预编译包,但由于众所周知的原因可能会失败,所以最好的安装方法是下载源码后自己编译安装,下面是安装步骤: 安...

ddd口木呆
33分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部