vue-ajax小封装实例

  

     /*   * ajax封装:   * 1。引入文件   * 2。新Vue () .ajax.get (url、数据、fn ojson),或新Vue () .ajax.post (url、数据、fn ojson)   * url:需要获取数据的文件地址(字符串)   *数据:需要发送的信息(可省略)(obj)   * fn:获取信息后的回调函数,接收到的返回值为数据(函数)   * ojson:是否需要转换为json格式(可省略)(设置为“json”)   *   * 3。.cancel .ajax.get新Vue()()():取消异步请求   * 4。新的Vue () .ajax.json (str):可转化json格式字符串   * */Vue.prototype.ajax={//添加url传送信息   addUrl:函数(url, obj) {//如果省略url,则为帖子请求,令obj为url,令url为null   如果(arguments.length==1) {   obj=url;   url=零;   }//url不为空(得到请求:设置url信息)   如果(! ! url) {   (var k obj) {   url +=(url.indexOf (“& # 63;”)==1 & # 63;" & # 63;:“和”);   url +=encodeURIComponent (k) + "=" + encodeURIComponent (obj [k]);   }   其他}{//后请求(设置数据信息)   url=" ";   (var k obj) {   url +=encodeURIComponent (k) + "=" + encodeURIComponent (obj [k]);   url +=昂汀?   }//删除最后一个,   var arr=url.split (" ");   arr.pop ();   url=arr.join (" ");   }//返回拼接好的信息   返回的url;   },   得到:函数(url、数据、fn ojson) {   这一点。xhr=new XMLHttpRequest ();//省略数据时,即不发送数据   如果(typeof数据https://www.yisu.com/zixun/==昂?{   ojson=fn;   fn=数据;   data=https://www.yisu.com/zixun/{};   }//合并url和数据信息   url=this.addUrl (url,数据)//是否异步发送   this.xhr.open(“获得”,url,真的);   this.xhr.send(空);//当请求完成之后调用回调函数返回数据   this.success (fn ojson);//链式编程   返回;   },   职位:函数(url、数据、fn ojson) {   这一点。xhr=new XMLHttpRequest ();//省略数据时,即不发送数据   如果(typeof数据https://www.yisu.com/zixun/==昂?{   ojson=fn;   fn=数据;   data=https://www.yisu.com/zixun/{};   }//合并数据信息   data=this.addUrl(数据);//是否异步发送   this.xhr.open(“文章”,url,真的);   this.xhr。setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);   this.xhr.send(数据);//当请求完成之后调用回调函数返回数据   this.success (fn ojson);//链式编程   返回;   },//字符串转换json   json:函数(str) {   返回(新功能(“回归”+ str)) ();   },   成功:函数(fn ojson) {//当请求完成之后调用回调函数返回数据   var自我=;   this.xhr。onreadystatechange=function () {   var odata;   如果(self.xhr。readyState==4) {   如果(self.xhr.status>=200,,self.xhr.status<300) | | self.xhr。状态==304){   odata=https://www.yisu.com/zixun/self.xhr.responseText;//若为json则转化json格式   如果(ojson===json) {   odata=https://www.yisu.com/zixun/self.json (odata);   }   fn (odata);   其他}{   odata=扒肭蟛怀晒?“+ self.xhr.status;   fn (odata);   }   }   }   },//取消异步请求   取消:函数(){   this.xhr.abort ();   返回;   }   }      

        & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title> Document   & lt;/head>   & lt; body>   & lt; div id=坝τ谩北?   & lt;按钮@click=" getInfo "祝辞点击获取信息& lt;/button>   & lt; span>{{味精}}& lt;/span>   & lt;/div>      & lt;脚本src=" https://www.yisu.com/zixun/vue.js "祝辞& lt;/script>   & lt;脚本src=" https://www.yisu.com/zixun/vue-ajax.js "祝辞& lt;/script>   & lt; script>   var vm=new Vue ({   埃尔:“#应用”,   数据:{   味精:“”,   },   方法:{   getInfo:函数(){   var自我=;   this.ajax.get (1. json, {   电话:123456,   地址:“池州市”   }、功能(数据){   self.msg [1] . name=数据   }," json ");   }   }   })   & lt;/script>   & lt;/body>   & lt;/html>      

        (   {   “名称”:“张三”,   “年龄”:18,   “性”:“男人”   },   {   “名称”:“李四”,   “年龄”:20,   “性”:“女人”   },   {   “名称”:“王五”,   年龄:22岁   “性”:“男人”   }   )      

vue-ajax小封装实例