还在为需要ajax而导入jquery吗? 纯js封装ajax操作

本文介绍了一个名为 SydAjax.js 的 JavaScript 库,用于实现 AJAX 功能。该库提供了创建 XMLHttpRequest 对象的方法,并支持 post 和 get 请求类型。通过简单的参数配置,开发者可以轻松地发送 HTTP 请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件名:SydAjax.js

 1 /**
 2  *    @desc javascript Ajax
 3  *    @parameter opt
 4  *    @parameter string opt.type  post/get,
 5  *    @parameter string opt.url 
 6  *    @parameter string opt.data  or json object
 7  *    @parameter function opt.success
 8  *    @parameter function opt.error
 9  *    @author Sydney
10  *    @date 2013年6月3日
11  */
12 var SydAjax = {
13     ajax:function(opt){
14         var xhr = this.createXhrObject();
15         xhr.onreadystatechange = function(){
16             if(xhr.readyState!=4) return ;
17             (xhr.status===200 ?
18                 opt.success(xhr.responseText,xhr.responseXML):
19                 opt.error(xhr.responseText,xhr.status));
20         }
21         xhr.open(opt.type,opt.url,true);
22         if(opt.type!=='post') 
23             opt.data=null;
24         else
25             xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
26         opt.data = this.parseQuery(opt.data);
27         xhr.send(opt.data);
28     },
29     post:function(url,success,data){
30         var popt = {
31             url:url,
32             type:'post',
33             data:data,
34             success:success,
35             error:function(data){}
36         }
37         this.ajax(popt);
38     },
39     get:function(url,success){
40         var gopt = {
41             url:url,
42             type:'get',
43             success:success,
44             error:function(){}
45         }
46         this.ajax(gopt);
47     },
48     createXhrObject:function(){
49         var methods = [
50             function(){ return new XMLHttpRequest();},
51             function(){ return new ActiveXObject('Msxml2.XMLHTTP');},
52             function(){ return new ActiveXObject('Microsoft.XMLHTTP');}
53         ];
54         for(var i=0;len=methods.length,i<len;i++){
55             try{
56                 methods[i]();
57             }catch(e){
58                 continue;
59             }
60             this.createXhrObject = methods[i];
61             return methods[i]();
62         }
63         throw new Error('Could not create an XHR object.');
64     },
65     parseQuery:function(json){
66         if(typeof json == 'object'){
67             var str = '';
68             for(var i in json){
69                 str += "&"+i+"="+encodeURIComponent(json[i]);
70             }
71             return str.length==0 ? str : str.substring(1);
72         }else{
73             return json;
74         }
75     }
76 };

转载于:https://www.cnblogs.com/hxtgirq710/p/3160865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值