国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Vue封裝完善ajax

princekin / 2197人閱讀

摘要:文件點擊獲取信息杭州文件封裝引入文件或需要獲取數(shù)據(jù)的文件地址需要發(fā)送的信息可省略獲取信息后的回調(diào)函數(shù)接收到的返回值為是否需要轉(zhuǎn)換為格式可省略設(shè)置為取消異步請求可轉(zhuǎn)化格式字符串添加傳送信息如果省略,則為請求,令為,令為不為空請求設(shè)置信息

HTML文件:



    
    Document


    
{{ msg }}
JS文件:
/*
* ajax封裝:
* 1. 引入文件
* 2. new Vue().ajax.get(url,data,fn,ojson), 或 new Vue().ajax.post(url,data,fn,ojson)
*     url: 需要獲取數(shù)據(jù)的文件地址 (string)
*     data: 需要發(fā)送的信息 (可省略) (obj)
*     fn: 獲取信息后的回調(diào)函數(shù),接收到的返回值為data (function)
*     ojson: 是否需要轉(zhuǎn)換為json格式 (可省略) (設(shè)置為 "json")
*
* 3. new Vue().ajax.get().cancel(): 取消異步請求
* 4. new Vue().ajax.json(str): 可轉(zhuǎn)化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請求: 設(shè)置url信息)
        if(!!url){
            for(var k in obj){
                url += (url.indexOf("?")==-1 ? "?" : "&");
                url+=encodeURIComponent(k)+ "=" +encodeURIComponent(obj[k]);
            }
        }else{
            //post請求(設(shè)置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時,即不發(fā)送數(shù)據(jù)
        if(typeof data =="function"){
            ojson=fn;
            fn=data;
            data={};
        }
        //合并url和data信息
        url=this.addUrl(url,data)
        //是否異步發(fā)送
        this.xhr.open("get",url,true);
        this.xhr.send(null);
        //當(dāng)請求完成之后調(diào)用回調(diào)函數(shù)返回數(shù)據(jù)
        this.success(fn,ojson);
        //鏈?zhǔn)骄幊?        return this;
    },
    post: function (url,data,fn,ojson){
        this.xhr=new XMLHttpRequest();
        //省略data時,即不發(fā)送數(shù)據(jù)
        if(typeof data =="function"){
            ojson=fn;
            fn=data;
            data={};
        }
        //合并data信息
        data=this.addUrl(data);
        //是否異步發(fā)送
        this.xhr.open("post",url,true);
        this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        this.xhr.send(data);

        //當(dāng)請求完成之后調(diào)用回調(diào)函數(shù)返回數(shù)據(jù)
        this.success(fn,ojson);
        //鏈?zhǔn)骄幊?        return this;
    },
    //字符串轉(zhuǎn)換json
    json: function (str){
        return (new Function("return " + str))(); 
    },
    success: function (fn,ojson){
        //當(dāng)請求完成之后調(diào)用回調(diào)函數(shù)返回數(shù)據(jù)
        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則轉(zhuǎn)化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;
    }
}
后臺獲取或者前端構(gòu)造的數(shù)據(jù)結(jié)構(gòu):
[
    {
        "name": "張三",
        "age": 18,
        "sex": "man"
    },
    {
        "name": "李四",
        "age": 20,
        "sex": "woman"
    },
    {
        "name": "王五",
        "age": 22,
        "sex": "man"
    }
]

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/99804.html

相關(guān)文章

  • Vue封裝完善ajax

    摘要:文件點擊獲取信息杭州文件封裝引入文件或需要獲取數(shù)據(jù)的文件地址需要發(fā)送的信息可省略獲取信息后的回調(diào)函數(shù)接收到的返回值為是否需要轉(zhuǎn)換為格式可省略設(shè)置為取消異步請求可轉(zhuǎn)化格式字符串添加傳送信息如果省略,則為請求,令為,令為不為空請求設(shè)置信息 HTML文件: Document 點擊獲取信息 {{ msg }} ...

    jlanglang 評論0 收藏0
  • axios異步請求數(shù)據(jù)的簡單使用

    摘要:使用模擬好后端數(shù)據(jù)之后模擬數(shù)據(jù)的使用參考,就需要嘗試請求加載數(shù)據(jù)了。數(shù)據(jù)請求選擇了,現(xiàn)在都推薦使用。規(guī)定要發(fā)送到服務(wù)器的數(shù)據(jù)。布爾值,表示請求是否異步處理。要求為類型的參數(shù),請求成功后調(diào)用的回調(diào)函數(shù)。在一個中重寫回調(diào)函數(shù)的字符串。 使用Mock模擬好后端數(shù)據(jù)之后(Mock模擬數(shù)據(jù)的使用參考:https://segmentfault.com/a/11...),就需要嘗試請求加載數(shù)據(jù)了。數(shù)...

    forsigner 評論0 收藏0
  • Jquery ajax, Axios, Fetch區(qū)別之我見

    摘要:我們都知道因為同源策略的問題,瀏覽器的請求是可能隨便跨域的一定要有跨域頭或者借助,但是,中可以設(shè)置為不跨域,如下所示這樣之后我們會得到一個為的返回。 免費幫忙內(nèi)推阿里等各大IT公司的崗位,有興趣可以帶簡歷加微信angeltune 引言 前端技術(shù)真是一個發(fā)展飛快的領(lǐng)域,我三年前入職的時候只有原生XHR和Jquery ajax,我們還曾被JQuery 1.9版本版本以下不支持大文件請求這個...

    YanceyOfficial 評論0 收藏0
  • 使用Promise實現(xiàn)簡單的Ajax緩存

    摘要:業(yè)務(wù)場景在不少業(yè)務(wù)場景下,我們需要實現(xiàn)簡單的請求緩存即某個請求只發(fā)起一次請求,例如上傳的獲取獲取配置的接口等。這些接口可以通過實現(xiàn)簡單的緩存并能夠控制更新,而不需要另外引入緩存層。上面是一個簡單的緩存上傳的例子,并且會在上傳失敗時刷新。 業(yè)務(wù)場景 在不少業(yè)務(wù)場景下,我們需要實現(xiàn)簡單的請求緩存(即某個請求只發(fā)起一次請求),例如上傳 Token 的獲取、獲取配置的接口等。 這些接口可以通過...

    dreamans 評論0 收藏0
  • 基于 Vue 的后臺管理系統(tǒng)前端實踐

    摘要:輸入框內(nèi)容過濾產(chǎn)品有一個需求是,在搜索用戶信息時,只能通過郵箱搜索,并且只能輸入字母數(shù)字以及。我選擇了輸入框的值這里的坑就是需要在中更新值,因為元素這時才刷新。是否有一定要用的必要類似的管理系統(tǒng)涉及到不同頁面之間的交互都很少。 初始化項目 使用 Vue-cli3 初始化項目1 安裝 Element UI安裝 Vue-i18n,做相關(guān)配置2,3 原則上需要對 Element 也做 I18...

    scwang90 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<