文档章节

XMLHttpRequest

爱吃柠檬的橘子
 爱吃柠檬的橘子
发布于 2016/11/25 13:38
字数 518
阅读 10
收藏 0
点赞 0
评论 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 对象。如果这两个都不存在,则抛出一个错误。

© 著作权归作者所有

爱吃柠檬的橘子
粉丝 6
博文 178
码字总数 84409
作品 0
芜湖
其他
XMLHttpRequest对象的创建

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

邵鸿鑫 ⋅ 2014/11/04 ⋅ 0

[Ajax-相濡以沫,不如相忘于江湖] Ajax核心: XMLHttpRequest对象

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

LSantorini ⋅ 2016/01/28 ⋅ 0

AJAX基础,AJAX验证邮箱是否存在的例子。

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

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

Ajax发送Post请求

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

技术mix呢 ⋅ 2017/11/08 ⋅ 0

XMLHttpRequest对象如何兼容各浏览器使用?

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

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

什么是XMLHttpRequest

Ajax利用了一个已被内置在所有主流浏览器里的对象——XMLHttpRequest,来发送和接收HTTP请求响应。 Ajax takes advantage of an object built into all modern browsers-the XMLHttpRequest ...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Ajax学习体验之一

在没有使用Ajax之前,总觉得Ajax很神秘,局部刷新、与服务器通信等,知道学习了Ajax之后,了解了Ajax语法之后,知道了其语法相当精简,扼要。下面就来说一说Ajax的精妙 AJAX = Asynchronous ...

飞雪无痕 ⋅ 2016/04/16 ⋅ 0

Ajax手写代码应知应会

一、什么是Ajax? Ajax是几个单词首字母的缩写:Asynchronous(异步的)Javascript And Xml。它不是一种全新的技术,而是整合了几种现有的技术:Javascript、XML和CSS 我们通过Javascript的XML...

分钟 ⋅ 2014/04/02 ⋅ 0

Ajax里的 XMLHttpRequest对象

XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始。 了解XMLHttpRequest 对象就先从创建XMLHttpRequest 对象开始,在不同的浏览器中创建XMLHttpRequ...

颜凤娇 ⋅ 2014/01/08 ⋅ 0

Java程序员从笨鸟到菜鸟之(八十四)深入浅出Ajax

Ajax(Asynchronous JavaScript and XML),异步的JavaScript与XML 。所谓同步,就是在进行一个操作之前必须要等到上一个操作返回操作结果才能进行这个操作,而异步则是在进行一个操作时可以...

长平狐 ⋅ 2012/11/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 19分钟前 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 45分钟前 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

[知乎]SSH框架

网上图书馆管理系统包括管理员管理和图书管理,图书借阅,查询模块等等,网上商城包括前台页面和后台管理页面,两个都是以前别人的实际项目,只是别人用的不是SSH,我把他们改用SSH了,除了S...

颖伙虫 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部