码迷,mamicode.com
首页 > Web开发 > 详细

Ajax请求POST方法的封装

时间:2017-05-23 10:16:24      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:==   function   adduser   pre   ret   call   serialize   err   封装   

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

  if(XMLHttpRequest){

    var xhr=new XMLHttpRequest();

  }else{

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

  }

  xhr .open(‘POST‘,url, true); //POST方法

  xhr .send(serialize(options));                                                  //查询参数需要作为send()的参数传入
}

 

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(‘&‘); //将数组中的元素用&分隔开返回成字符串形式

}

 

post(‘/addUser‘, {name: ‘jerry‘, age: 1}, function(data) {

  console.log(data);

  // 处理返回数据

});

Ajax请求POST方法的封装

标签:==   function   adduser   pre   ret   call   serialize   err   封装   

原文地址:http://www.cnblogs.com/zhweb/p/6892541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!