使用es6的then()方法封裝jquery的ajax請求


使用場景:

jsp頁面中使用jquery的ajax請求比較頻繁,以前vue框架的項目用過axios,所以就想着用then()封裝一個公共請求的方法,這樣每次請求就不用那么麻煩的寫一大堆請求參數了。

示例代碼:

        /**
         * 封裝請求方法
         * @param {Object} url  接口請求地址
         * @param {Object} data 接口請求參數(無需請求方式參數,則此項可以為空,否則必須傳)
         * @param {Object} params 請求方式參數(可以為空)
         */
        function ajax(url, data, params) {
            return new Promise(function(resolve, reject) {
                $.ajax({
                    url: "<{$params['wap_url']}>" + url,
                    type: params && params.type || 'post',
                    dataType: params && params.dataType || 'JSON',
                    data: data,
                    success: function(res) {
                        resolve(res)
                    },
                    error: function(res) {
                        alert(res.m)
                    }
                });
            });

        }
    //引用方法
      var params={
           goods_id:""
      }
      this.ajax("package/goodslist",params).then(function(data){
           console.log(data)
      })

代碼解析:

如上,ajax請求的具體請求在封裝的方法中進行處理並返回響應數據,調用方法只需要傳入接口地址、請求參數就可以了。

如果需要使用其他的請求方式,則通過 params 參數傳入預置的 type 和 dataType。

如果需要設置其他的請求參數,則直接對封裝方法中擴展就可以了 。

注意事項:

1. 本例只是根據當前需求進行了簡單的封裝,可以根據自己的需要進行調整。

2. 調用封裝好的請求方法必須傳入url參數,如果ajax請求的配置參數不需要額外設置的話,則接口請求參數可以不傳,如:

this.ajax("package/goodslist").then(function(data){
    console.log("ddd,",data)
})

但是,如果ajax請求的配置參數需要配置,則接口參數即使沒有,也得傳個空值過去,如:

this.ajax("package/goodslist","",{type:"get"}).then(function(data){
    console.log("ddd,",data)
})

當然你可以嘗試使用es6的解構賦值進行傳參。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM