Web中的XHRHttpRequest

1.提出者:Jesse James Garrett

2.IE中,XHR是通过ActiveX对象实现的。涉及浏览器的兼容性写法。

3.使用

<1>open("请求方式","请求的URL",“同步还是异步”)    

<2>send("作为请求主体发送的数据")    如果不需要,则必须传入null。

<3>responseText()     作为响应主体被返回的文本,还有一个responseXML

<4>status    响应的HTTP状态

<5>statusText    HTTP状态的说明

4.readyState

只要readyState由一个值变为另外一个值,都会触发onreadystatechange事件处理程序。为了确保兼容性,应该在open之前调用onreadystatechange。有请求也就可以取消请求,使用xhr.abort()即可。

5.HTTP的头信息

6.GET请求

使用GET请求经常会发生一个错误,就是差查询字符串的格式有问题。查询字符串中每个参数的名称和值都必须使用encodeURIComponent()进行编码,然后才能放到URL的末尾。

Blob对象:是一个二进制对象,如图片等

7.XMLHttpRequest 2级

<1>FormData

为表单的序列化以及创建与表单格式相同的数据提供了便利。

<2>超时设定

请求超时执行回调:xhr.timeout=function(){}

<3>overrideMimeType()

重写XHR响应的MIME类型

<4>进度事件

<5>load事件

<6>progress事件

8.实例演示:

JS:

//兼容性XHR
function createXHR(){
    if(typeof XMLHttpRequest !="undefined"){

        return new XMLHttpRequest();
    }else if(typeof ActiveXObject !="undefined"){

        if(typeof  arguments.callee.activeString!="string"){
            var versions=["MSXML2.XMLHTTP6.0","MSXML2.XMLHTTP3.0","MSXML2.XMLHTTP"], i,len;
            for(i=0;len=versions.lengthli<len;i++){
                try{
                    new ActiveXObject(versions[i]);
                    arguments.callee.activeString=versions[i];
                    break;
                }catch (ex){
                    //跳过
                }
            }
        }
        return new ActiveXObject(arguments.callee.activeString);
    }else{
        throw  new Error("无可用XHR");
    }

}

//兼容性写法 var xhr=new createXHR();
var xhr=new XMLHttpRequest();
    xhr.onreadystatechange=function(){
        if(xhr.readyState==4){
            if((xhr.status>=200 && xhr.status<300) || xhr.status==304){
                alert(xhr.responseText);
            }else{
                alert("请求失败!");
            }

        }

    };
    xhr.open("get","zqz.txt",true);
    xhr.send(null);

结果:

请求与响应的信息:

改成post请求后:

时间: 2024-11-07 09:52:48

Web中的XHRHttpRequest的相关文章

&quot;命名空间&quot;system.web&quot;中不存在类型或命名空间名称security&quot;错误解决方法

using System; using System.Collections.Generic; using System.Text; using System.Web; namespace 求md5 { class Program { static void Main(string[] args) { string str = GetMd5("xuwei"); Console.WriteLine(str); } public static string GetMd5(string st

CKEditor4 在java web中的应用说明(详细可行)

按照官方的说明书就可,这里主要注意一点!! 就是<script src="../ckeditor.js"></script>中js文件的路径问题,我的ckeditor文件夹是在WebContent文件夹下,jsp文件是同一层目录的,所以最后的代码应该是 <script type="text/javascript"src="./ckeditor/ckeditor.js"></script> 注意斜杆号

Viewport在开发手机Web中的应用

目前比较主流的移动设备系统包括 Android,IOS ,Symbian,BlackBerry 与Web OS.这些系统浏览器都是基于webkit核心,而webkit号称是一款全功能的移动浏览器,支持 HTML + CSS + JavaScript,但由于移动设备本身与PC的差异,导致我们开发的网页在移动设备上总是会存在一些不如人意的地方. Viewport 翻译为中文可以叫做"视区",大家都知道移动设备的屏幕一段都比PC小很多,webkit浏览器会将一个较大的"虚拟&quo

优化Web中的性能

优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争. 优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的顺序一般也是按请求的流程逐一优化.这里的流程只是做个概要,并不代表全面. 整个流程是以最快的方式让用户看到结果 定位的方法 思路是:把看不见的http,具体化.可视化. 定位是优化的前提.没有准确的定位就无法有效的解决问题. 浏览器 看整个请求的时间 看整个页面加载的时间 看页面加载的数据大小 看页

CSS3 生成内容(在Web中插入内容)

在Web中插入内容,在CSS2.1时代依靠的是JavaScript来实现.但进入CSS3进代之后我们可以通 过CSS3的伪类“:before”,“:after”和CSS3的伪元素“::before”.“::after”来实现,其关键是依靠CSS3中的 “content”属性来实现.不过这个属性对于img和input元素不起作用. content配合CSS的伪类或者伪元素,一般可以做以下四件事情: 功能 功能说明 none 不生成任何内容 attr 插入标签属性值 url 使用指定的绝对或相对地址

编译器错误消息: CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)

署名:冯兵 今天我遇上一个问题:编译器错误消息: CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?). 让我烦恼了很长一段时间,怎么调试也不知道错在哪,后来问师兄才知道错在哪. 起因:修改一个功能模块的代码,怕影响到其他功能模块的功能实现,所以我新建了一个区域,把要修改模块的相关代码都复制过去,把带波浪线的提示都修改完后,   运行就出现这个错误. 解决方案:找到复制前和复制后的视图文件夹下的文件名为“Web.confi

java web中servlet、jsp、html 互相访问的路径问题。

在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径. 情况一.指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendRedirect(path); 情况二.指向内部的web组件和本身有关系的,这一类我暂时看到的有:servlet或者jsp的转发 假设在myapp项目下有

java web 中的转发和重定向

假设应用程序的 contextPath 为 /ctx,在 http://localhost:8080/ctx/a/b 资源中,我们转发和重定向到 http://localhost:8080/ctx/x/y 资源,分别应该怎么写? 转发,是在同一个应用程序中,请求从由资源 A 处理,到由资源 B 处理.资源 A 和资源 B 属于同一个应用程序的资源,它们总是相对于该应用程序的 contextPath 而言的.转发的资源可以使用相对路径(不以 "/" 开头)和绝对路径(以 "/&

web中的CSS、Xpath等路径定位方法学习

今天不到八点就到公司了,来的比较早,趁着有点时间,总结下web中的CSS.Xpath等路径定位定位的方式吧! 简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代码: 这个是xpath 1 #!/usr/bin/env python 2 # -*- coding: utf_8 -*- 3 4 from learn_webdriver import Webdriver 5 from selenium import webdriver 6 from seleni