Ajax请求GET方法的封装

function get(url, options, callback){                                        //定义get函数

  if(XMLHttpRequest){

    var xhr=new XMLHttpRequest();

  }else{

    var xhr=new ActiveXObject("Microsoft.XMLHTTP"); //兼容ie

  }


  xhr .onreadystatechange = function(callback) {

    if(xhr .readyState === 4){

      if((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304){

        callback(xhr.responseText);

      }else{

        alert("请求未成功:" + xhr .status )

      }

    }

  }

  var seriUrl = url + '?' + serialize(options);

  xhr .open('get',seriUrl, true);

  xhr .send(null);
}


function serialize(data){

  if(!data) return '';

  var pairs = [], value;

  for(name in data){                                                       //遍历对象属性

    if(!data.hasOwnProperty(name)) continue;        //过滤掉继承原型的属性和方法

    if(typeof data[name] === 'function') continue; //过滤掉函数方法

    value = data[name].toString();                             //属性值转为字符串

    name = encodeURIComponent(name);              //可把属性名称字符串作为URI 组件进行编码。返回值URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

    value = encodeURIComponent(value);              //属性值进行URI编码。

    pairs.push(name + '=' + value);                          //属性名和值放入数组

  }

  return pairs.join('&');                                                 //将数组中的元素用&分隔开返回成字符串形式

}


get('/information', {name: 'netease', age: 18}, function (data) {

  console.log(data);

  // 处理返回数据

});

posted on 2017-05-23 09:32 晓霜 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/zhweb/p/6892582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值