AJAX原生态编写

  1. function createXMLHTTPRequest() {
  2. //1.创建XMLHttpRequest对象
  3. //这是XMLHttpReuquest对象无部使用中最复杂的一步
  4. //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
  5. var xmlHttpRequest;
  6. if (window.XMLHttpRequest) {
  7. //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
  8. xmlHttpRequest = new XMLHttpRequest();
  9. //针对某些特定版本的mozillar浏览器的BUG进行修正
  10. if (xmlHttpRequest.overrideMimeType) {
  11. xmlHttpRequest.overrideMimeType("text/xml");
  12. }
  13. } else if (window.ActiveXObject) {
  14. //针对IE6,IE5.5,IE5
  15. //两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
  16. //排在前面的版本较新
  17. var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
  18. for ( var i = 0; i < activexName.length; i++) {
  19. try {
  20. //取出一个控件名进行创建,如果创建成功就终止循环
  21. //如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
  22. xmlHttpRequest = new ActiveXObject(activexName[i]);
  23. if(xmlHttpRequest){
  24. break;
  25. }
  26. } catch (e) {
  27. }
  28. }
  29. }
  30. return xmlHttpRequest;
  31. }
  32. function createXMLHTTPRequest() {
                     //1.创建XMLHttpRequest对象
                     //这是XMLHttpReuquest对象无部使用中最复杂的一步
                     //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
                     var xmlHttpRequest;
                     if (window.XMLHttpRequest) {
                         //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
                        xmlHttpRequest = new XMLHttpRequest();
                         //针对某些特定版本的mozillar浏览器的BUG进行修正
                         if (xmlHttpRequest.overrideMimeType) {
                             xmlHttpRequest.overrideMimeType("text/xml");
                         }
                     } else if (window.ActiveXObject) {
                         //针对IE6,IE5.5,IE5
                         //两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
                         //排在前面的版本较新
                         var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
                         for ( var i = 0; i < activexName.length; i++) {
                             try {
                                 //取出一个控件名进行创建,如果创建成功就终止循环
                                 //如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
                                xmlHttpRequest = new ActiveXObject(activexName[i]);
                                if(xmlHttpRequest){
                                    break;
                                }
                             } catch (e) {
                             }
                         }
                     }
                     return xmlHttpRequest;
                 }   

2.get请求

Js代码  

  1. function get(){
  2. var req = createXMLHTTPRequest();
  3. if(req){
  4. req.open("GET", "http://test.com/?keywords=手机", true);
  5. req.onreadystatechange = function(){
  6. if(req.readyState == 4){
  7. if(req.status == 200){
  8. alert("success");
  9. }else{
  10. alert("error");
  11. }
  12. }
  13. }
  14. req.send(null);
  15. }
  16. }
            function get(){
                var req = createXMLHTTPRequest();
                if(req){
                    req.open("GET", "http://test.com/?keywords=手机", true);
                    req.onreadystatechange = function(){
                        if(req.readyState == 4){
                            if(req.status == 200){
                                alert("success");
                            }else{
                                alert("error");
                            }
                        }
                    }
                    req.send(null);
                }
            }

3.post请求

Js代码  

  1. function post(){
  2. var req = createXMLHTTPRequest();
  3. if(req){
  4. req.open("POST", "http://test.com/", true);
  5. req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gbk;");
  6. req.send("keywords=手机");
  7. req.onreadystatechange = function(){
  8. if(req.readyState == 4){
  9. if(req.status == 200){
  10. alert("success");
  11. }else{
  12. alert("error");
  13. }
  14. }
  15. }
  16. }
  17. }
               function post(){
                var req = createXMLHTTPRequest();
                if(req){
                    req.open("POST", "http://test.com/", true);
                    req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gbk;");
                    req.send("keywords=手机");
                    req.onreadystatechange = function(){
                        if(req.readyState == 4){
                            if(req.status == 200){
                                alert("success");
                            }else{
                                alert("error");
                            }
                        }
                    }
                }
            }

post请求需要设置请求头

4.    readyState与status:

readyState有五种状态:

  0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法;
  1 (载入):已经调用open() 方法,但尚未发送请求;
  2 (载入完成): 请求已经发送完成;
  3 (交互):可以接收到部分响应数据;
  4 (完成):已经接收到了全部数据,并且连接已经关闭。
如此一来,你应该就能明白readyState的功能,而status实际是一种辅状态判断,只是status更多是服务器方的状态判断。关于status,由于它的状态有几十种,我只列出平时常用的几种:
  100——客户必须继续发出请求
  101——客户要求服务器根据请求转换HTTP协议版本
  200——成功
  201——提示知道新文件的URL
  300——请求的资源可在多处得到
  301——删除请求数据
  404——没有发现文件、查询或URl
  500——服务器产生内部错误

时间: 2024-10-13 15:43:38

AJAX原生态编写的相关文章

AJAX 原生态

                                                               AJAX   原生态 原生态AJAX详解和jquery对AJAX的封装 AJAX: A :Asynchronous [eI`sinkrenes] 异步 J :JavaScript    JavaScript脚本语言 A: And X :XML 可扩展标记语言 AJAX现在貌似已经无处不在了,其实自从web2.0的广泛发展带来了AJAX的发展.我们目前的客户端可以分为胖客户

ajax 原生态和jquery封装区别

一.原生态 var xmlHttp = false; try{ if( xmlHttp && xmlHttp.readyState != 0 ){ xmlHttp.abort(); } if (!xmlHttp){ xmlHttp = getXMLHTTPObj(); } if(xmlHttp){ var url = "pages/overlapanalysis_PostResult.jsp?dkName="+dkName+"&annlysisBusi

异步交互之Ajax原生编写

一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象! 利用ajax实现异步交互无非4步: 1.创建ajax核心对象 2.与服务器建立连接 3.向服务器发送请求 4.接收服务器响应的数据 看似神秘的异步交互当明确这4步后,也许在大家脑海里已经有了初步的思路了 首先我们创建ajax的核心对象,由于浏览器的兼容问题我们在创建ajax核心对象的时候不得考虑其兼容问题,因为要想实现异步交互的后面步骤都基于第一步是否成功的创建了ajax核心对象.

AJAX 简单上手

AJAX简介 没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,如实现显示服务器的时间每次都要刷新页面的坏处:页面刷新打断用户操作.速度慢.增加服务器的流量压力.如果没有AJAX,在youku看视频的过程中如果点击了"顶.踩".评论.评论翻页,页面就会刷新,视频就会被打断 AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)是一种进行页面局部异步刷新的技术.用AJAX 向服务器发送请求和获得服务器

关于Ajax的理解

实现Ajax客户端 编写函数实现对服务器端的访问  请求字符串   var url="UserExite.aspx?name=值";  创建XMLHttpRequest对象    xhr=createXMLHttpRequest();  设置回调函数   xhr.onreadystatechange=readyDo;  初始化XMLHttpRequest组件   xhr.open("GET",url,true);  发送请求   xhr.send(null); 原生

JavaWeb之Ajax快速入门(十九)

AJAX 1. AJAX简介 1. AJax是什么 允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做AJax,AJax不是新的编程语言是多种技术的结合形成一门新技术 AJAX = DHTML (HTML.CSS.JavaScript ) + XMLHttpRequest对象 2. AJax的特点 不适用于任何应用场景 导致逻辑处理混乱 Ajax是实现B\S模式下的异步交互 在实现同样的功能时,Ajax的性能更好 3. AJax的优点 1). 传统web交互模型,浏览器直接将请求发送给服务器

原生ajax详解

原生Ajax: Ajax基础:--ajax:无刷新数据读取,读取服务器上的信息--HTTP请求方法:    --GET:用于获取数据,如浏览帖子    --POST:用于上传数据,如用户注册 --GET与POST的区别:    GET:--通过网址传递(放入url中),会将传递的数据放到网址上面,--名字=值&名字=值        --get方式容量小        --安全性低        --有缓存    POST:--不通过网址传递         --post容量较大,一般可达2G 

jQuery(二) jQuery对Ajax的使用

学习使我快乐!嘿 --WH 一.jQuery使用Ajax 想要了解jQuery如何使用Ajax,并且体会到它所带来的方便性,那么就得了解原始的Ajax是如何编写的,是怎样的繁琐,然后和Jquery的代码进行对比,才会有所悟. 1.1.什么是Ajax?(顺带提一下) 全名:Asynchronous Javascript And Xml[异步javascript和xml], 同步和异步原理图 同步就是浏览器发送一个请求到服务器端,网址会改变,页面会被重新加载到新的页面.如图 异步就是浏览器发送一个请

.NET运用AJAX 总结及其实例

1.AJAX简介 (1.没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,比如实现显示服务器的时间.每次都要刷新页面的坏处:页面刷新打断用户操作.速度慢.增加服务器的流量压力. 如果没有AJAX,在youku看视频的过程中如果点击了“顶.踩”.评论.评论翻页,页面就会刷新,视频就会被打断.试想一个效果:在YOUKU网看视 频,然后看到一个顶踩的功能,看没有ajax会打断视频,然后将按钮用UpdatePanel包起来就不会打断视频了.用HttpWatch看没有 A