欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用原生js封裝的ajax實(shí)例(兼容jsonp)

 更新時(shí)間:2017年10月12日 09:56:17   作者:mapbar_front  
下面小編就為大家?guī)?lái)一篇使用原生js封裝的ajax實(shí)例(兼容jsonp)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

實(shí)例如下:

/* 封裝ajax函數(shù)
 * @param {string}opt.type http連接的方式,包括POST和GET兩種方式
 * @param {string}opt.url 發(fā)送請(qǐng)求的url
 * @param {boolean}opt.async 是否為異步請(qǐng)求,true為異步的,false為同步的
 * @param {object}opt.data 發(fā)送的參數(shù),格式為對(duì)象類型
 * @param {function}opt.success ajax發(fā)送并接收成功調(diào)用的回調(diào)函數(shù)
 */
  function ajax(opt) {
    opt = opt || {};
    opt.method = opt.method.toUpperCase() || 'POST';
    opt.url = opt.url || '';
    opt.async = opt.async || true;
    opt.data = opt.data || null;
    opt.success = opt.success || function () {};
    opt.dataType = opt.dataType || "json";
    var xmlHttp = null;
    if (XMLHttpRequest) {
      xmlHttp = new XMLHttpRequest();
    }
    else {
      xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
    }var params = [];
    for (var key in opt.data){
      params.push(key + '=' + opt.data[key]);
    }
    var postData = params.join('&');
    if (opt.method.toUpperCase() === 'POST') {
      xmlHttp.open(opt.method, opt.url, opt.async);
      xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
      xmlHttp.send(postData);
    }
    else if (opt.method.toUpperCase() === 'GET') {
      xmlHttp.open(opt.method, opt.url + '?' + postData, opt.async);
      xmlHttp.send(null);
    } 
    xmlHttp.onreadystatechange = function () {
      if(opt.dataType != 'jsonp'){
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
          opt.success(xmlHttp.responseText);
        }
      }else{
        //alert(1); 
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
          var oScript = document.createElement('script');
          document.body.appendChild(oScript);

          var callbackname = 'wangxiao'
          oScript.src = opt.url + "?" + postData+'&callback='+callbackname;

          window['wangxiao'] = function(data) {
            opt.success(data);
            document.body.removeChild(oScript);
          };
        }


      }

    };
  }
  export default ajax;

以上這篇使用原生js封裝的ajax實(shí)例(兼容jsonp)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 網(wǎng)頁(yè)禁用右鍵菜單和鼠標(biāo)拖動(dòng)選擇方法小結(jié)

    網(wǎng)頁(yè)禁用右鍵菜單和鼠標(biāo)拖動(dòng)選擇方法小結(jié)

    本文主要給大家總結(jié)了一下在網(wǎng)頁(yè)中禁用鼠標(biāo)右鍵和鼠標(biāo)拖動(dòng)選擇的幾種常用的方法,十分的實(shí)用,有需要的小伙伴參考下。
    2015-02-02
  • 判斷可拖動(dòng)div是否重合 重合多少

    判斷可拖動(dòng)div是否重合 重合多少

    效率較低 該如何優(yōu)化了
    2010-08-08
  • JS循環(huán)遍歷ul中l(wèi)i的點(diǎn)擊事件給選中l(wèi)i添加css樣式(示例代碼)

    JS循環(huán)遍歷ul中l(wèi)i的點(diǎn)擊事件給選中l(wèi)i添加css樣式(示例代碼)

    對(duì)于一個(gè)ul中固定的li個(gè)數(shù),當(dāng)點(diǎn)擊其中一個(gè)li時(shí),改變選中l(wèi)i的顏色;同時(shí)改變對(duì)應(yīng)的另一個(gè)ul中l(wèi)i的顏色,怎么實(shí)現(xiàn)這個(gè)功能呢,下面小編給大家?guī)?lái)了js循環(huán)遍歷ul中l(wèi)i的點(diǎn)擊事件,給給選中l(wèi)i添加css樣式,感興趣的朋友一起看看吧
    2023-07-07
  • JavaScript實(shí)現(xiàn)的多種鼠標(biāo)拖放效果

    JavaScript實(shí)現(xiàn)的多種鼠標(biāo)拖放效果

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的多種鼠標(biāo)拖放效果,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)變換頁(yè)面元素屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • JavaScript對(duì)象數(shù)組的排序處理方法

    JavaScript對(duì)象數(shù)組的排序處理方法

    這篇文章主要介紹了JavaScript對(duì)象數(shù)組的排序處理方法,以實(shí)例形式分析了JavaScript對(duì)象數(shù)組的排序原理與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • PHPMyAdmin導(dǎo)入時(shí)提示文件大小超出PHP限制的解決方法

    PHPMyAdmin導(dǎo)入時(shí)提示文件大小超出PHP限制的解決方法

    這篇文章主要介紹了PHPMyAdmin導(dǎo)入時(shí)提示文件大小超出PHP限制的解決方法,造成這個(gè)問(wèn)題的原因是PHP上傳大小限制為2MB,修改PHP.ini配置即可解決這問(wèn)題,需要的朋友可以參考下
    2015-03-03
  • 一文詳解如何清除手機(jī)上小程序緩存

    一文詳解如何清除手機(jī)上小程序緩存

    大家在使用微信小程序的時(shí)候會(huì)有緩存,雖然小程序的緩存數(shù)值相比APP要少的多,下面這篇文章主要給大家介紹了關(guān)于如何清除手機(jī)上小程序緩存的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • javascript函數(shù)的call、apply和bind的原理及作用詳解

    javascript函數(shù)的call、apply和bind的原理及作用詳解

    javascript函數(shù)的call、apply和bind?本質(zhì)是用來(lái)實(shí)現(xiàn)繼承的,專業(yè)點(diǎn)說(shuō)法就是改變函數(shù)體內(nèi)部this的指向,當(dāng)一個(gè)對(duì)象沒(méi)有某個(gè)功能時(shí),就可以用這3個(gè)來(lái)從有相關(guān)功能的對(duì)象里借用過(guò)來(lái),文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 一文帶你深入了解JavaScript中的原型&原型鏈

    一文帶你深入了解JavaScript中的原型&原型鏈

    相信不少同學(xué)在面試的時(shí)候經(jīng)常在基礎(chǔ)上就掛掉了,當(dāng)下行情實(shí)屬嚴(yán)峻,如果我們基礎(chǔ)都沒(méi)有打牢固的話,實(shí)屬有點(diǎn)面試?yán)速M(fèi)機(jī)會(huì)。本文就來(lái)和大家聊聊JavaScript中的原型&原型鏈,希望對(duì)大家有所幫助
    2023-02-02
  • js拖動(dòng)div 當(dāng)鼠標(biāo)移動(dòng)時(shí)整個(gè)div也相應(yīng)的移動(dòng)

    js拖動(dòng)div 當(dāng)鼠標(biāo)移動(dòng)時(shí)整個(gè)div也相應(yīng)的移動(dòng)

    要拖動(dòng)的div為最外層的div,這段代碼對(duì)顯示對(duì)話框的頭部綁定鼠標(biāo)監(jiān)聽事件,當(dāng)鼠標(biāo)移動(dòng)時(shí),整個(gè)div也相應(yīng)的移動(dòng),具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下
    2013-11-11

最新評(píng)論