`
sjpsega
  • 浏览: 300385 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

原生Ajax书写

    博客分类:
  • web
 
阅读更多

1.创建XMLHttpRequest对象

 

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请求

 

            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请求

 

               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——服务器产生内部错误

 

参考资料:

原生AJAX入门讲解

ajax(原生js学习)

分享到:
评论
1 楼 Joker49 2017-04-09  
request.responseText
request.status

相关推荐

    通过原生js和jQuery书写了一个电商平台系统.zip

    在这个名为“通过原生js和jQuery书写了一个电商平台系统.zip”的压缩包中,包含了一个使用JavaScript(包括原生JS和jQuery库)开发的前端电商平台项目。这个项目可能是一个基础的在线购物平台,展示了如何利用这两种...

    Jquery ajax书写方法代码实例解析

    jQuery 提供了一个简单易用的 API 来处理 AJAX 请求,使得开发者无需直接操作原生的 XMLHttpRequest 对象。 jQuery 中的 AJAX 方法主要有 `$.ajax()`,`$.get()` 和 `$.post()`。这里我们主要关注 `$.ajax()`,因为...

    day07.docx

    在Web开发中,原生AJAX(Asynchronous JavaScript and XML)是一种实现页面异步更新的重要技术,无需刷新整个页面即可与服务器进行数据交互。这里我们将深入探讨如何使用原生AJAX进行API调用,以及在实际项目中需要...

    文章伪原创系统源码 - 最新版程序源码下载推荐

    程序前端采用BootStrap框架搭建,后端采用PHP原生书写。 前端伪原创采用Ajax无刷新提交,Ajax转换到词库列表,目前已经收录6000多个同义词。 支持词库分页预览,支持提交同义词,检查词库是否存在同义词。 提交的...

    第5节 JavaScript 网络请求 - 课件

    了解 HTTP 协议,熟悉网络通信相关概念(重点,难点) 学会使用 JSON 数据的四种书写格式(重点,难点) 学会应用原生 Ajax 请求流程与细节(重点,难点) 掌握常见的跨域技巧(重点,难点)

    Jquery ajax执行顺序 返回自定义错误信息(实例讲解)

    如果在Ajax请求中将async设置为false,表示请求为同步模式,此时页面将等待该请求完成后再继续执行后续代码,这可以保证多个Ajax请求按照代码中书写的顺序依次执行。 在给定的文件内容中,描述了如何控制多个Ajax...

    js 书写较复杂的UI日记

    8. **异步编程**:如果日记应用涉及到服务器通信,比如同步到云服务,那么就会用到AJAX或Fetch API进行异步请求。 9. **响应式设计**:为了让日记应用在不同设备上都能良好显示,开发者可能会使用媒体查询、Flexbox...

    javascript页面加载完执行事件代码

    5. 对于动态内容的加载,利用异步JavaScript与XML(Ajax)、Fetch API等技术,可以在不刷新整个页面的情况下,获取或更新页面中的部分内容。 总的来说,页面加载完毕执行事件代码是前端开发中的基础知识点,掌握好...

    CVASP框架 201204C

     提供几个下划线的代码生成工具: _convutf8.asp --用于转换中文为UTF编码用于AJAX _mkcvatpl.asp --用于生成编程时用的代码书写模板 _viewsrc.asp --用于查看cvcore.asp的源代码注释 具体效果用IIS管理器运行...

    小程序-05-JavaScript 网络请求.pptx

    本文档详细介绍了支付宝小程序开发中的JavaScript网络请求相关知识点,包括HTTP协议的基础概念、同源策略、GET与POST请求的区别、JSON数据的书写与转换方法、原生Ajax请求的流程与细节以及常见的跨域解决技巧。...

    此为本人学习node.js中书写的Demo,特此保存一下。采用AppCan MEAP移动应用开发平台开发,数据库采用.zip

    5. **前后端交互**:理解RESTful API设计,用JSON格式交换数据,学习如何通过Ajax或者fetch API在客户端与服务器之间进行异步通信。 6. **版本控制**:虽然压缩包中没有提及,但良好的开发习惯通常会使用Git进行...

    WordPress博客主题 Beginning(更新至 4.1.1 版本)

    响应式设计,移动端完全重新设计,模仿 iOS 原生 APP;主题的图片为双倍缩放,图标是字体图标,在 Retina 屏幕下依然有良好的显示效果 支持幻灯片功能,可以完全自定义幻灯片参数,并且幻灯片内容来源也有很丰富的...

    ASP.NET 3.5 入门经典

    3. ASP.NET AJAX:原生支持Ajax技术,可以创建无刷新的交互式Web应用。 4. LINQ:语言集成查询,允许开发者在C#或VB.NET中直接书写查询,简化了数据库查询操作。 三、ASP.NET 3.5的关键特性 1. 控件生命周期:理解...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)...

    ExtAspNet_v2.3.2_dll

    -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)...

    CVASP框架 201204C.zip

     _convutf8.asp --用于转换中文为UTF编码用于AJAX  _mkcvatpl.asp --用于生成编程时用的代码书写模板  _viewsrc.asp --用于查看cvcore.asp的源代码注释  具体效果用IIS管理器运行一下就知道了。  数据库类...

    jquery是什么意思?jquery和js的区别是什么?.docx

    - **AJAX支持**:简化了与服务器端的异步通信过程,使得数据可以在不刷新页面的情况下进行加载和更新。 - **插件扩展**:拥有庞大的社区支持,可以轻松找到或创建各种插件来增强其功能。 ### jQuery与JavaScript的...

    前端开发简历模板-前端开发工程师-3年.doc

    * 掌握原生 JavaScript 操作 DOM,BOM 元素 * 对于 JS 中面向对象、继承、原型链、闭包等面向对象的知识有一定了解 * 熟练使用 AJAX/JSONP 进行前后端数据交互,理解 HTTP 协议,明白前后端的交互原理 三、框架/库/...

    layui admin 1.2.1

    layui 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。它的设计目标是极致轻量、性能优越且组件丰富。 在 "layui admin 1.2.1" 中,我们可以深入探讨以下...

Global site tag (gtag.js) - Google Analytics