javascript中的AJAX
2016-03-08 19:39
387 查看
Ajax 技术的核心是XMLHttpRequest 对象(简称XHR),这是由微软首先引入的一个特性,其他
浏览器提供商后来都提供了相同的实现。
IE7+、Firefox、Opera、Chrome 和Safari 都支持原生的XHR 对象
在IE的老浏览器中可能会遇到三种不同版本的XHR 对象,即MSXML2.XMLHttp MSXML2.XMLHttp.3.0 和MXSML2.XMLHttp.6.0
要跨浏览器的话可以用下面的代码:
注意:只能向同一个域中使用相同端口和协议的URL 发送请求。如果URL 与启动请求的页面有任何差别,都会引发安全错误。这与web的同源策略有关。
浏览器提供商后来都提供了相同的实现。
IE7+、Firefox、Opera、Chrome 和Safari 都支持原生的XHR 对象
在IE的老浏览器中可能会遇到三种不同版本的XHR 对象,即MSXML2.XMLHttp MSXML2.XMLHttp.3.0 和MXSML2.XMLHttp.6.0
要跨浏览器的话可以用下面的代码:
function createXHR(){//生成XHR对象 if(typeof XMLHttpRequest=="function"){ return new XMLHttpRequest();//原生的xhr对象 }esle if(typeof ActiveXObject!="undefined"){//ie7-系列 var version=['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp']; for(var i=0;i<version.length;i++){ try{ return new ActiveXObject(version[i]); }catch(e){ //跳过 } } } else{ throw new Error("not support the createXMR method"); } } function ajax(method,url,data,async){ /* method:表示是以get还是post方法请求 ulr:请求的url data:发送的数据 async:同步还是异步,fasle表示同步,true表示异步 */ var xhr=createXHR(); /*如果是以get方式发送数据的话,数据是加载在url后面,以name=value的方式,如: http://www.vip.com/0308?tagId=manjian298&f=oper_2 */ if(method=="get"){//get方式请求数据 url=url+"?"+data; } xhr.onreadystatechange = function(){ if (xhr.readyState == 4){ if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ alert(xhr.responseText);//这里可以执行回调函数 } else { alert("Request was unsuccessful: " + xhr.status); } } }; xhr.open(method,url, async);// //如果是post请求的话,还有加上下面这句 if(methhod=="post"){ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(data); }else{ xhr.send(null);//如果是以get方式请求的话,则为null; } }
注意:只能向同一个域中使用相同端口和协议的URL 发送请求。如果URL 与启动请求的页面有任何差别,都会引发安全错误。这与web的同源策略有关。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享