前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第110天:Ajax原生js封装函数

第110天:Ajax原生js封装函数

作者头像
半指温柔乐
发布2018-09-11 11:06:56
2.9K0
发布2018-09-11 11:06:56
举报
文章被收录于专栏:前端知识分享前端知识分享

一、Ajax的实现主要分为四部分:

1、创建Ajax对象

代码语言:javascript
复制
1 // 创建ajax对象
2 var xhr = null;
3 if(window.XMLHttpRequest){
4     xhr = new XMLHttpRequest();
5 } else {
6     //为了兼容IE6
7     xhr = new ActiveXObject('Microsoft.XMLHTTP');
8 }

2、连接服务器

代码语言:javascript
复制
// 连接服务器open(方法GET/POST,请求地址, 异步传输)
xhr.open('GET',  'data.txt',  true);

3、发送请求

代码语言:javascript
复制
// 发送请求
xhr.send();

4、接收返回数据

代码语言:javascript
复制
 1 // 处理返回数据
 2 /*
 3 ** 每当readyState改变时,就会触发onreadystatechange事件
 4 ** readyState属性存储有XMLHttpRequest的状态信息
 5 ** 0 :请求未初始化
 6 ** 1 :服务器连接已建立
 7 ** 2 :请求已接受
 8 ** 3 : 请求处理中
 9 ** 4 :请求已完成,且相应就绪
10 */
11 xhr.onreadystatechange = function(){
12     if(xhr.readyState == 4){
13         /*
14         ** Http状态码
15         ** 1xx :信息展示
16         ** 2xx :成功
17         ** 3xx :重定向
18         ** 4xx : 客户端错误
19         ** 5xx :服务器端错误
20         */
21         if(xhr.status == 200){
22             success(xhr.responseText);
23         } else {
24             if(failed){
25                 failed(xhr.status);
26             }
27         }
28     }
29 }

二、Ajax封装函数:

代码语言:javascript
复制
 1 function Ajax(type, url, data, success, failed){
 2     // 创建ajax对象
 3     var xhr = null;
 4     if(window.XMLHttpRequest){
 5         xhr = new XMLHttpRequest();
 6     } else {
 7         xhr = new ActiveXObject('Microsoft.XMLHTTP')
 8     }
 9  
10     var type = type.toUpperCase();
11     // 用于清除缓存
12     var random = Math.random();
13  
14     if(typeof data == 'object'){
15         var str = '';
16         for(var key in data){
17             str += key+'='+data[key]+'&';
18         }
19         data = str.replace(/&$/, '');
20     }
21  
22     if(type == 'GET'){
23         if(data){
24             xhr.open('GET', url + '?' + data, true);
25         } else {
26             xhr.open('GET', url + '?t=' + random, true);
27         }
28         xhr.send();
29  
30     } else if(type == 'POST'){
31         xhr.open('POST', url, true);
32         // 如果需要像 html 表单那样 POST 数据,请使用 setRequestHeader() 来添加 http 头。
33         xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
34         xhr.send(data);
35     }
36  
37     // 处理返回数据
38     xhr.onreadystatechange = function(){
39         if(xhr.readyState == 4){
40             if(xhr.status == 200){
41                 success(xhr.responseText);
42             } else {
43                 if(failed){
44                     failed(xhr.status);
45                 }
46             }
47         }
48     }
49 }
50  
51 // 测试调用
52 var sendData = {name:'asher',sex:'male'};
53 Ajax('get', 'data/data.html', sendData, function(data){
54     console.log(data);
55 }, function(error){
56     console.log(error);
57 });
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Ajax的实现主要分为四部分:
    • 1、创建Ajax对象
      • 2、连接服务器
        • 3、发送请求
          • 4、接收返回数据
          • 二、Ajax封装函数:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档