Vue封装ajax的代码示例详解

本篇文章给大家带来的内容是关于vue封装ajax的代码示例详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

HTML文件:

        Document    
{{ msg }}
var vm=new Vue({ el: "#app", data: { msg: "", }, methods: { getInfo: function (){ var self=this; this.ajax.get("1.json",{ tel: 123456, address: "杭州" },function (data){ self.msg=data[1].name },"json"); } } })

登录后复制

JS文件:

/** ajax封装:* 1. 引入文件* 2. new Vue().ajax.get(url,data,fn,ojson), 或 new Vue().ajax.post(url,data,fn,ojson)*     url: 需要获取数据的文件地址 (string)*     data: 需要发送的信息 (可省略) (obj)*     fn: 获取信息后的回调函数,接收到的返回值为data (function)*     ojson: 是否需要转换为json格式 (可省略) (设置为 "json")** 3. new Vue().ajax.get().cancel(): 取消异步请求* 4. new Vue().ajax.json(str): 可转化json格式字符串**/Vue.prototype.ajax={    //添加url传送信息    addUrl: function (url,obj){        //如果省略url,则为post请求,令obj为url,令url为null        if(arguments.length==1){            obj=url;            url=null;        }        //url不为空(get请求: 设置url信息)        if(!!url){            for(var k in obj){                url += (url.indexOf("?")==-1 ? "?" : "&");                url+=encodeURIComponent(k)+ "=" +encodeURIComponent(obj[k]);            }        }else{            //post请求(设置data信息)            url="";            for(var k in obj){                url+=encodeURIComponent(k)+ "=" +encodeURIComponent(obj[k]);                url+="&";            }            //删除最后一个&            var arr=url.split("");            arr.pop();            url=arr.join("");        }        //返回拼接好的信息        return url;    },    get: function (url,data,fn,ojson){        this.xhr=new XMLHttpRequest();        //省略data时,即不发送数据        if(typeof data =="function"){            ojson=fn;            fn=data;            data={};        }        //合并url和data信息        url=this.addUrl(url,data)        //是否异步发送        this.xhr.open("get",url,true);        this.xhr.send(null);        //当请求完成之后调用回调函数返回数据        this.success(fn,ojson);        //链式编程        return this;    },    post: function (url,data,fn,ojson){        this.xhr=new XMLHttpRequest();        //省略data时,即不发送数据        if(typeof data =="function"){            ojson=fn;            fn=data;            data={};        }        //合并data信息        data=this.addUrl(data);        //是否异步发送        this.xhr.open("post",url,true);        this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        this.xhr.send(data);        //当请求完成之后调用回调函数返回数据        this.success(fn,ojson);        //链式编程        return this;    },    //字符串转换json    json: function (str){        return (new Function("return " + str))();     },    success: function (fn,ojson){        //当请求完成之后调用回调函数返回数据        var self=this;        this.xhr.onreadystatechange=function (){            var odata;            if(self.xhr.readyState == 4){                if((self.xhr.status>=200 && self.xhr.status<300) || self.xhr.status == 304){                    odata=self.xhr.responseText;                    //若为json则转化json格式                    if(ojson==="json"){                        odata=self.json(odata);                    }                    fn(odata);                }else{                    odata="request was unsuccessful: "+self.xhr.status;                    fn(odata);                }            }        }    },    //取消异步请求    cancel: function (){        this.xhr.abort();        return this;    }}

登录后复制

后台获取或者前端构造的数据结构:

[    {        "name": "张三",        "age": 18,        "sex": "man"    },    {        "name": "李四",        "age": 20,        "sex": "woman"    },    {        "name": "王五",        "age": 22,        "sex": "man"    }]

登录后复制

以上就是Vue封装ajax的代码示例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2735577.html

(0)
上一篇 2025年3月8日 01:16:40
下一篇 2025年2月18日 11:18:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScrip的常见面试题及答案总结

    本篇文章给大家带来的内容是关于javascrip的常见面试题及答案总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、请解释 JavaScript 中 this 是如何工作的。 首先:this 永远指向函数运行时所在的…

    编程技术 2025年3月8日
    200
  • JavaScript中let、var和const的区别及应用场景的介绍

    在javascript中,建议在使用变量和常量时声明变量名称(下面统称为“变量”)。var,let和const是在javascript中声明变量时使用的关键字,其中,let和const是ecmascript 2015采用的新声明方法的关键字…

    2025年3月8日
    200
  • JavaScript的历史对象是什么

    javascript的历史对象是 window 对象的一部分,表示用户访问过的url的数组集合;它是用来保存着用户上网的历史历史,从窗口被打开的那一刻算起。 本篇文章给大家介绍JavaScript的历史对象,让大家对History对象有一个…

    2025年3月8日
    200
  • JavaScript提供的Cookie属性有哪些

    javascript提供的cookie属性有:expires属性(声明cookie的到期时间),max-age属性(声明cookie活动的最大时间),domain属性(定义有效域名),path属性。 Cookie是什么? Cookie是服务…

    2025年3月8日
    200
  • JavaScript 提升(Hoisting)是什么

    hoisting是javascript 中的一种机制,它可以将变量和函数的声明移到最顶部;让我们可以在声明它们之前使用变量和函数,也就是说:让变量和函数可以先使用再声明。 本篇文章就给大家介绍JavaScript的提升机制(Hoisting…

    2025年3月8日 编程技术
    200
  • javascript如何执行调试

    javascript中执行调试的方法有:1、使用console.log()方法调试,该方法可以将结果显示在浏览器的控制台中;2、通过关键字“debugger”设置断点来逐步检查每行代码。 本文操作环境:windows7系统,DELL G3电…

    2025年3月8日 编程技术
    200
  • 在JavaScript中如何创建对象

    对象是属性的集合,变量数组也是一种对象,对象可用于管理数据,属性就是添加了以名称(属性名称)为前缀的特定名称(值),本篇文章我们就来详细介绍一下javascript对象的用法。 我们先来看如何创建一个对象 创建一个traffic_light…

    2025年3月8日 编程技术
    200
  • 如何使用JavaScript操作字符串

    JavaScript可以对字符串进行各种操作,比如,字符串输出、字符串连接以及转义字符,本篇文章我们就来详细介绍关于JavaScript操作字符串的方法。 一、使用JavaScript输出字符串    在JavaScript中,想要输出字符…

    2025年3月8日 编程技术
    200
  • JavaScript中的算术运算符怎么使用

    JavaScript中的算术运算符可用于计算和输出值,包括加减乘除和余数的操作,本篇文章我们就来具体介绍JavaScript中算术运算符的用法,下面我们来看具体的内容。 算术运算符加减乘除和余数的符号分别是“+、-、*、/、%”。 我们来看…

    2025年3月8日 编程技术
    200
  • 如何使用JavaScript实现输入对话框

    我们有时在网页上进行注册用户信息时会出现弹窗进行提示,你需要输入内容进行确认,那么,这样的输入对话框是怎么实现的呢?本篇文章就来介绍关于使用javascript实现输入对话框的方法。 我们可以使用prompt显示输入对话框 要在JavaSc…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论