分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

原生的 XMLHttpRequest

发布时间:2023-09-06 02:07责任编辑:白小东关键词:暂无标签

创建XMLHttpReuqest

由于在IE7之前,IE不支持XMLHttpRequest,所以如果想要兼容IE7之前的版本,就需要做一些额外的工作来创建XMLHttpRequest对象。可以使用下面的代码来创建:

function createXHR(){ ???????????//如果支持XMLHttpRequest,之间创建该对象 ???????????if (typeof XMLHttpRequest != "undefined"){ ???????????????return new XMLHttpRequest(); ???????????} //否则就要判断要用哪个对象来创建了 ???????????else if (typeof ActiveXObject != "undefined"){ ???????????????if (typeof arguments.callee.activeXString != "string"){ ???????????????????var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", ???????????????????????????????????"MSXML2.XMLHttp"], ???????????????????var i, len; ???????????????????//逐个试,一旦找到合适的,就去创建 ???????????????????for (i=0,len=versions.length; i < len; i++){ ???????????????????????try { ???????????????????????????new ActiveXObject(versions[i]); ???????????????????????????arguments.callee.activeXString = versions[i]; ???????????????????????????break; ???????????????????????} catch (ex){ ???????????????????????????//skip ???????????????????????} ???????????????????} ???????????????} ???????????????????????????return new ActiveXObject(arguments.callee.activeXString); ???????????} else {//创建不成功 ???????????????throw new Error("No XHR object available."); ???????????} ???????}

执行Ajax请求:

 1 ?var xhr = createXHR(); 2 ????????//需要调用的第一个方法就是open() 3 ????????//第一个参数表示请求的方式get或post,第二个表示请求的资源,true表示异步 4 ????????xhr.open("get","../ajax/AjaxDataDemo",true); 5 ????????//自定义头部,推荐使用自定义的头部 6 ????????xhr.setRequestHeader("myheader","myheader"); 7 ????????xhr.send(null); 8 ?????????9 ????????//请求完成后的回调函数,可能会调用很多次10 ????????xhr.onreadystatechange = function() {11 ????????????//readyState表示请求的状态,为3时就会调用onreadystatechange12 ????????????//等于4时表示数据完成13 ?????????????if(xhr.readyState == 4) {14 ?????????????????//status表示http响应码,statusText是对应的说明15 ?????????????????alert(xhr.status + ": " + xhr.statusText);16 ?????????????????//返回的数据都放在responseText中17 ?????????????????alert("data: " + xhr.responseText);18 ?????????????????var allheaders = xhr.getAllResponseHeaders();19 ?????????????????alert(allheaders);20 ?????????????}21 ????????}22 ????????23 ????????alert("ajax is async,so it‘s my time.");

XMLHttpRequest 对象的重要属性:

(1)readyState存有XMLHttpRequest 的状态,0~4。

         0——请求未初始化

         1——服务器连接已经建立

         2——请求已接受

         3——请求处理中

         4——请求已完成,且响应已就绪。

(2)status,HTTP的特定状态码:

100-199:信息性的标示用户应该采取的其他动作。

200-299:表示请求成功。

300-399:用于那些已经移走的文件,常常包括Location报头,指出新的地址。

400-499:表明客户引发的错误。

500-599:由服务器引发的错误。

(3)onreadystatechage:

 存储函数(或函数名),每当readyState属性改变时,就会调用该函数

XMLHttpRequest 对象的常用方法:

open(method,url,async)

规定请求的类型,URL以及是否异步处理请求

1.method:请求的类型:GET或POST

2.url:文件在服务器上的位置

3.async:true(异步)或false(同步)

send(string)

将请求发送到服务器。

string:仅用于POST请求,表示传递的参数,格式为key1=val1&key2=val2

的查询字符串

setRequestHeader(header,value)

向请求添加HTTP头.

header:规定头的名称

value:规定头的值

原生的 XMLHttpRequest

原文地址:https://www.cnblogs.com/wfhking/p/9464003.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved