【转】Javascript原生Ajax请求

什么是 ajax
ajax 即“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),也就是无刷新数据读取。
http 请求
首先需要了解 http 请求的方法(GET 和 POST)。
GET 用于获取数据。GET 是在 URL 中传递数据,它的安全性低,容量低。
POST 用于上传数据。POST 安全性一般,容量几乎无限。
ajax 请求
ajax 请求一般分成 4 个步骤。
1、创建 ajax 对象
在创建对象时,有兼容问题:

var oAjax = new XMLHttpRequest();   //for ie6 以上
var oAjax = new ActiveXObject(‘Microsoft.XMLHTTP‘); //for ie6

合并上面的代码:

1 var oAjax = null;
2 if(window.XMLHttpRequest){
3     oAjax = new XMLHttpRequest();
4 }else{
5     oAjax = new ActiveXObject(‘Microsoft.XMLHTTP‘);
6 }

2、连接服务器
在这里会用到 open() 方法。open() 方法有三个参数,第一个参数是连接方法即 GET 和 POST,第二个参数是 URL 即所要读取数据的地址,第三个参数是否异步,它是个布尔值,true 为异步,false 为同步。

1 oAjax.open(‘GET‘, url, true);

3、发送请求
send() 方法。

1 oAjax.send();

4、接收返回值
onreadystatechange 事件。当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState:请求状态,返回的是整数(0-4)。
0(未初始化):还没有调用 open() 方法。
1(载入):已调用 send() 方法,正在发送请求。
2(载入完成):send() 方法完成,已收到全部响应内容。
3(解析):正在解析响应内容。
4(完成):响应内容解析完成,可以在客户端调用。
status:请求结果,返回 200 或者 404。
200 => 成功。
404 => 失败。
responseText:返回内容,即我们所需要读取的数据。需要注意的是:responseText 返回的是字符串。

 1 oAjax.onreadystatechange=function(){
 2     if(oAjax.readyState==4){
 3         if(oAjax.status==200){
 4             fnSucc(oAjax.responseText);
 5         }else{
 6             if(fnFaild){
 7                 fnFaild();
 8             }
 9         }
10     }
11 };

将以上代码进行封装:

 1 function ajax(url, fnSucc, fnFaild){
 2     //1.创建对象
 3     var oAjax = null;
 4     if(window.XMLHttpRequest){
 5         oAjax = new XMLHttpRequest();
 6     }else{
 7         oAjax = new ActiveXObject("Microsoft.XMLHTTP");
 8     }
 9
10     //2.连接服务器
11     oAjax.open(‘GET‘, url, true);   //open(方法, url, 是否异步)
12
13     //3.发送请求
14     oAjax.send();
15
16     //4.接收返回
17     oAjax.onreadystatechange = function(){  //OnReadyStateChange事件
18         if(oAjax.readyState == 4){  //4为完成
19             if(oAjax.status == 200){    //200为成功
20                 fnSucc(oAjax.responseText)
21             }else{
22                 if(fnFaild){
23                     fnFaild();
24                 }
25             }
26         }
27     };
28 }

最后附上实例:

 1 <!DOCTYPE HTML>
 2 <html lang="en-US">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>ajax基础</title>
 6 </head>
 7 <body>
 8     点击按钮的时候,读取abc.txt<input id="btn" type="button" value="读取"/><br/>
 9     <div id="con"></div>
10 </body>
11 </html>
12 <script type="text/javascript" src="ajax.js"></script>
13 <script type="text/javascript">
14 window.onload = function(){
15     var oBtn = document.getElementById(‘btn‘);
16     var oCon = document.getElementById(‘con‘);
17     oBtn.onclick = function(){
18         ajax(‘abc.txt‘,function(str){
19             oCon.innerHTML = str;
20         });
21     }
22 }
23 </script>

abc.txt 内容:
这是ajax调用的内容1。
这是ajax调用的内容2。
这是ajax调用的内容3。

来源: http://www.cnblogs.com/yjzhu/archive/2013/01/28/2879542.html

【转】Javascript原生Ajax请求

时间: 2024-10-26 10:11:08

【转】Javascript原生Ajax请求的相关文章

javascript原生ajax请求

1 class Ajax{ 2 3 constructor(url, method, data, callback_suc, callback_err, callback_run){ 4 this.RT = true;//默认为异步请求 5 this.url = url; 6 this.method = method || "POST"; 7 this.data = data || ""; 8 this.callback_suc = callback_suc ||

原生javaScript完成Ajax请求

使用原生javaScript完成Ajax请求,首先应该创建一个对象XMLHttprequest,考虑到兼容低版本IE浏览器,使用ActiveXObject对象,代码入下: var request; if(windoe.XMLHtprequest){ request=new XMLHttprequest(); }else{ request = new ActiveXObject(); } function success(text) { var textarea = document.getEle

原生AJAX请求教程

ajax 即 Asynchronous Javascript And XML,AJAX 不是一门的新的语言,而是对现有持术的综合利用.本质是在 HTTP 协议的基础上以异步的方式与服务器进行通信. 异步:指某段程序执行时不会阻塞其它程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序,相反则为同步. XMLHttpRequest 对象 浏览器内建对象,用于在后台与服务器通信(交换数据) ,由此我们便可实现对网页的部分更新,而不是刷新整个页面. 所有现代浏览器(IE7+.Firefox.C

Servlet处理原生Ajax请求

萌新小白人生中的第一篇博客,难免会有差错,还望各位大佬多多包涵. 1. Ajax技术简介      Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)时一种创建交互式网页应用的网页开发技术,它并不是一项新的技术,其产生的目的是用于实现页面的局部刷新.通过Ajax技术可以使之前的应用程序在每次提交时不用进行页面的整体刷新,从而提升操作的性能. 2. Servlet概念     Servlet(服务器端小程序)是使用java编写的服务器端小程

JS原生Ajax请求

摘录一个JS原生Ajax请求行为,原文地址:http://caibaojian.com/ajax-jsonp.html ajax({ url: "./TestXHR.aspx", //请求地址 type: "POST", //请求方式 data: { name: "super", age: 20 }, //请求参数 dataType: "json", success: function (response, xml) { //

javascript中Ajax请求的封装代码

/****************************ajax请求 start**************************************/ function ajaxClass(_url, _successCallback, _failureCallback, _urlParameters, _callbackParams, _async, _charset, _timeout, _frequency, _requestTimes, _frame) { /** * AJAX

javascript版Ajax请求

什么是Ajax请求,Ajax也就是"Asynchronous JavaScript and XML"(异步JavaScript和XML),无刷新数据读取.能减少流量的消耗,也提高了浏览的流畅性,给用户更加友好的体验. 发送Ajax请求也就几步便可完成 第一步:创建异步对象 var xhr = new XMLHttpRequest(); 这样创建的异步对象是给新版的浏览器用的,当然不乏一些用着旧版浏览器的老客户.旧版的创建方法如下: var xhr = new ActiveXObject

原生ajax请求

原生ajax请求: // ajax四步:创建XMLHttpRequest对象,连接服务器,发送请求,接收响应数据 ajax: function (options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || 'json'; var xhr = new XMLHttpRequest(); var

使用原生JavaScript发送ajax请求

关于使用原生JavaScript发送异步请求给服务端. 准备工作: 代码编写工具用的是sublime 服务端使用的是wamp搭的一个本地Apache服务器,主要用来返回数据 方便测试 步骤: 浏览器端 html标签绑定事件发送ajax请求----> 五步操作:1 创建异步对象XMLHttpRequest; 2 设置method url 3 发送请求给服务端 4 注册事件   5 在事件中获取服务端返回的数据,进行操作. 服务器端 1 获取请求数据 2 返回结果给浏览器 下面来一个小demo1做一