国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

react中的ajax封裝實例詳解

2019-11-19 15:09:37
字體:
來源:轉載
供稿:網友

react中的ajax封裝實例詳解

代碼塊

**opts: {'可選參數'}**method: 請求方式:GET/POST,默認值:'GET';**url:  發送請求的地址, 默認值: 當前頁地址;**data: string,json;**async: 是否異步:true/false,默認值:true;**cache: 是否緩存:true/false,默認值:true;**contentType: HTTP頭信息,默認值:'application/x-www-form-urlencoded';**success: 請求成功后的回調函數;**error: 請求失敗后的回調函數;*/let configResText = function (responseText, resTextType){ return resTextType == 'html' ? responseText : JSON.parse(responseText);};let ajax = function (opts){ //一.設置默認參數 var defaults = {     method: 'GET',     url: '',    data: '',    async: true,    cache: false, contentType: 'application/x-www-form-urlencoded', resTextType: '',   success: function (){},    error: function (){} }; //二.用戶參數覆蓋默認參數   for(var key in opts){  defaults[key] = opts[key]; } //三.對數據進行處理 if(typeof defaults.data === 'object'){  //處理 data  var str = '';  for(var key in defaults.data){   var curDataStr = JSON.stringify(defaults.data[key]);   if (curDataStr.charAt(0) == '[' && curDataStr.charAt(curDataStr.length-1) == ']') {    var arrQuery = JSON.parse(curDataStr).map(function (item){     return key + '[]=' + item    }).join('&');    str += key + '=' + arrQuery + '&';   } else {    str += key + '=' + defaults.data[key] + '&';   }  }  defaults.data = str.substring(0, str.length - 1); } defaults.method = defaults.method.toUpperCase();  //處理 method defaults.cache = defaults.cache ? '' : '&' + new Date().getTime() ;//處理 cache if( defaults.method === 'GET' && (defaults.data || defaults.cache) ) {  defaults.url += String('?' + defaults.data + defaults.cache);  //處理 url  if(defaults.cache){   defaults.url = defaults.url.replace(/(/?[^/?]+)/?/gi, '$1');  } } //四.開始編寫ajax //1.創建ajax對象 var oXhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //2.和服務器建立聯系,告訴服務器你要取什么文件 oXhr.open(defaults.method, defaults.url, defaults.async); //3.發送請求 if(defaults.method === 'GET')  oXhr.send(null); else{  oXhr.setRequestHeader("Content-type", defaults.contentType);  oXhr.send(defaults.data); }   //4.等待服務器回應 oXhr.onreadystatechange = function (){  if(oXhr.readyState === 4){   if(oXhr.status === 200)    defaults.success.call(oXhr, configResText(oXhr.responseText, defaults.resTextType));   else{    defaults.error();   }  } };};export default ajax;

調用方法

import ajax from '../../commonJS/ajax.js';ajax({  url: '',  data: '',  success: function(t) {      if (t) {      let allpageNum = t.data;        $this.setState({         allPages:allpageNum        });      }  }});

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 论坛| 突泉县| 开江县| 商水县| 怀化市| 道孚县| 饶平县| 神池县| 合肥市| 株洲市| 海南省| 衡南县| 周至县| 梁平县| 海口市| 高青县| 锡林浩特市| 黔江区| 象山县| 淮北市| 新和县| 德州市| 正宁县| 托克托县| 南川市| 绥江县| 长垣县| 嘉黎县| 五家渠市| 长海县| 怀安县| 星座| 闵行区| 池州市| 张家口市| 沙湾县| 淄博市| 隆化县| 溧阳市| 安宁市| 滦平县|