原生js实现AJAX(二)
来源:互联网 发布:2017 下半年 手机 知乎 编辑:程序博客网 时间:2024/06/06 10:46
原生js实现AJAX(二)
简易的AJAX请求
var u=window.u||{};u.createXHR=function() { var methods=[ function() {return new XMLHttpRequest();}, function() {return new ActiveXObject(Msxml2.XMLHTTP);}, function() {return new ActiveXObject(Microsoft.XMLHTTP);} ]; for(var i=0;i<3;i++) { try { methods[i](); } catch(e) { continue; } this.createXHR=methods[i]; return methods[i](); } throw new Error("没有找到XHR对象"); };u.ajax=function(options) { var method=options.method||'GET', url=encodeURI(options.url), success=options.success, failed=options.failed, data=options.data||null; var xhr=u.createXHR();//创建XHR对象 xhr.open(method,url,true);//指定请求 xhr.onreadystatechange=function() { if(xhr.readyState==4) { if((xhr.status>=200&&xhr.status<300)||xhr.status==304) { success(xhr.responseText);//执行成功的回调函数 xhr=null; } } else { if(xhr.status!=200) { failed(xhr.status);//执行失败的回调函数 } } } xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//设置Content-Type xhr.send(data);正式发送请求}
HTTP请求的各部分有指定顺序:请求方法和URL首先到达,然后是请求头,最后是请求主体。XMLHttpRequest实现通常直到调用send方法才开始启动网络。
setRequestHeader()方法的调用必须在调用open之后,但在调用send之前,否则它将抛出异常。
目前这段代码只能实现简单的AJAX请求,如GET方式发起请求,在url中携带参数或者使用POST方式,在data中包含请求主体,且必须为’find=pizz&&user=123’的格式才能被后台正常读取。
阅读全文
0 0
- 原生js实现AJAX(二)
- 原生js实现Ajax
- 原生js实现ajax
- 原生JS实现Ajax
- 原生js实现ajax
- 原生js实现Ajax
- 原生js实现Ajax
- 原生js实现ajax
- 原生js实现AJAX(一)
- 原生js实现AJAX(三)
- 原生JS实现ajax请求
- 原生js实现ajax方法
- JS实现原生Ajax原理图
- 原生js实现ajax方法
- Ajax练习二(原生JS异步请求)
- Ajax(原生js实现、jQuery实现、跨域)
- 原生JavaScript实现Ajax(二):同步,异步,GET,POST
- 原生js实现ajax方法(闭包)
- tp3.2 select查询 踩坑
- centos7 RTNETLINK answers: File exists 解决办法
- 明确买房目的是买房的名列前茅步 买得起也要住得起
- 求逆序对
- HDU3152 Obstacle Course(BFS)
- 原生js实现AJAX(二)
- 求余数
- 月光族买房技巧:考虑这些避免被生活所累!
- cordova network-information插件
- 基于STC89C52单片机实现简易计算器
- VMware Workstation12安装Ubuntu 16.04和VMware Tools教程
- Android 百分比透明度转换
- B
- 蓝牙模块HC05遇到的一些常见的问题