真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

原生JavaScrpit中異步請(qǐng)求Ajax實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)

在前端頁(yè)面開(kāi)發(fā)的過(guò)程中,經(jīng)常使用到Ajax請(qǐng)求,異步提交表單數(shù)據(jù),或者異步刷新頁(yè)面。

創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)成都崗?fù)?/a>等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專(zhuān)業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞心悅目的作品。 與客戶(hù)共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

一般來(lái)說(shuō),使用Jquery中的$.ajax,$.post,$.getJSON,非常方便,但是有的時(shí)候,我們只因?yàn)樾枰猘jax功能而引入Jquery比較不劃算。

所以接下來(lái)便用原生JavaScrpit實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Ajax請(qǐng)求,并說(shuō)明ajax請(qǐng)求中的跨域訪(fǎng)問(wèn)問(wèn)題,以及多個(gè)ajax請(qǐng)求的數(shù)據(jù)同步問(wèn)題。

JavaScript實(shí)現(xiàn)Ajax異步請(qǐng)求

簡(jiǎn)單的ajax請(qǐng)求實(shí)現(xiàn)

Ajax請(qǐng)求的原理是創(chuàng)建一個(gè)XMLHttpRequest對(duì)象,使用這個(gè)對(duì)象來(lái)進(jìn)行異步發(fā)送請(qǐng)求,具體實(shí)現(xiàn)參考下面代碼:

function ajax(option) {
  // 創(chuàng)建一個(gè) XMLHttpRequest 對(duì)象
  var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"),
    requestData = option.data,
    requestUrl = option.url,
    requestMethod = option.method;
  // 如果是GET請(qǐng)求,需要將option中的參數(shù)拼接到URL后面
  if ('POST' != requestMethod && requestData) {
    var query_string = '';
    // 遍歷option.data對(duì)象,構(gòu)建GET查詢(xún)參數(shù)
    for(var item in requestData) {
      query_string += item + '=' + requestData[item] + '&';
    }
    // 注意這兒拼接的時(shí)候,需要判斷是否已經(jīng)有 ?
    requestUrl.indexOf('?') > -1
      ? requestUrl = requestUrl + '&' + query_string
      : requestUrl = requestUrl + '?' + query_string;
    // GET 請(qǐng)求參數(shù)放在URL中,將requestData置為空
    requestData = null;
  }
  // ajax 請(qǐng)求成功之后的回調(diào)函數(shù)
  xhr.onreadystatechange = function () {
    // readyState=4表示接受響應(yīng)完畢
    if (xhr.readyState == ("number" == typeof XMLHttpRequest.DONE ? XMLHttpRequest.DONE : 4)) {
      if (200 == xhr.status) { // 判斷狀態(tài)碼
        var response = xhr.response || xhr.responseText || {}; // 獲取返回值
        // if define success callback, call it, if response is string, convert it to json objcet
        console.log(response);
        option.success && option.success(response); // 調(diào)用成功的回調(diào)函數(shù)處理返回值
        // 可以判斷返回?cái)?shù)據(jù)類(lèi)型,對(duì)數(shù)據(jù)進(jìn)行JSON解析或者XML解析
        // option.success && option.success('string' == typeof response ? JSON.parse(response) : response);
      } else {
        // if define error callback, call it
        option.error && option.error(xhr, xhr.statusText);
      }
    }
  };
  // 發(fā)送ajax請(qǐng)求
  xhr.open(requestMethod, requestUrl, true);
  // 請(qǐng)求超時(shí)的回調(diào)
  xhr.ontimeout = function () {
    option.timeout && option.timeout(xhr, xhr.statusText);
  };
  // 定義超時(shí)時(shí)間
  xhr.timeout = option.timeout || 0;
  // 設(shè)置響應(yīng)頭部,這兒默認(rèn)設(shè)置為json格式,可以定義為其他格式,修改頭部即可
  xhr.setRequestHeader && xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
  xhr.withCredentials = (option.xhrFields || {}).withCredentials;
  // 這兒主要用于發(fā)送POST請(qǐng)求的數(shù)據(jù)
  xhr.send(requestData);
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。


文章標(biāo)題:原生JavaScrpit中異步請(qǐng)求Ajax實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/dgecio.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部