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

資訊專欄INFORMATION COLUMN

Vue封裝完善ajax

princekin / 2189人閱讀

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

HTML文件:



    
    Document


    
{{ msg }}
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"
    }
]

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99804.html

相關文章

  • Vue封裝完善ajax

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

    jlanglang 評論0 收藏0
  • axios異步請求數據的簡單使用

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

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

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

    YanceyOfficial 評論0 收藏0
  • 使用Promise實現簡單的Ajax緩存

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

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

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

    scwang90 評論0 收藏0

發表評論

0條評論

princekin

|高級講師

TA的文章

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