Ajax的簡單封裝

来源:http://www.cnblogs.com/-walker/archive/2017/06/14/7009151.html
-Advertisement-
Play Games

親測POST和GET都可以正常使用,如果你有更好的建議請指出~ 目前跟jquery的GET和POST一樣效果 一個GET方式的線上DEMO 其他: 關於xhrRequest.readyState請參考MDN:https://developer.mozilla.org/zh-CN/docs/Web/A ...


親測POST和GET都可以正常使用,如果你有更好的建議請指出~

目前跟jquery的GET和POST一樣效果

一個GET方式的線上DEMO

'use strict';
// 1、封裝AJAX函數
function Ajax(option){
    // 定義domain,方便環境切換
    var domain='https://' + window.location.host + '/';
    var url=domain+option.urlStr;
    var type=option.ajaxType;
    var data=option.ajaxData;
    var xhrRequest=new XMLHttpRequest();
    var str=null;
    xhrRequest.open(type,url,true);
    if(type==="POST"&&data!=null){
        xhrRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=utf-8");
        for(var key in data){
            str+='&'+key+'='+data[key];
            str=str.slice(1);
        }
    }
    xhrRequest.onreadystatechange=function(){
        if(xhrRequest.readyState==4&&xhrRequest.status==200||xhrRequest.status==304){
            // 1、格式化返回的數據
            var responseData=JSON.parse(xhrRequest.responseText);
            console.log(responseData);
        }
    }
    xhrRequest.send(str);
}
// 2、POST:定義請求參數
var postOption={
    ajaxType:"POST",                                //必須:"GET"/"POST"
    urlStr:"v2/html/broke/get_broke_ranked_info",    //必須:"string類型"
    ajaxData:{                                        //必須:POST時候為object{key:value},GET的時候直接為:null
        "HTTP_USER_TOKEN":token,
        "HTTP_USER_UID":pfid, 
        "anchor_pfid":anchor_pfid,
        "broke_pfid":pfid,
        "date":date
    }
}

Ajax(postOption);

//3、GET:定義請求參數
var getOption={
    ajaxType:"GET",                                    //必須:
    urlStr:"v2/html/broke/get_broke_ranked_info",    //必須:
    ajaxData:null                                    //必須:        
}
Ajax(getOption);

 其他:

關於xhrRequest.readyState請參考MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/readyState


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉自:http://www.cnblogs.com/guohu/archive/2013/05/22/3092383.html /* * 預設轉換實現函數,如果需要其他功能,需自行擴展* 參數:* tableID : HTML中Table對象id屬性值* 詳細用法參見以下 TableToExcel ...
  • function getUrlParameter(strParame){ var args = new Object( ); var query = location.search.substring(1); var pairs = query.split("&"); for(var i = 0; ... ...
  • 什麼是 WebView 是手機中內置了一款高性能 內核瀏覽器,在 中封裝的一個組件。沒有提供地址欄和導航欄, 只是單純的展示一個網頁界面。在開發中經常都會用到。 ps: 關於 WebView 的介紹,可以看這裡 "《談談 WebView 的使用》" 雖說 WebView 是安卓開發中設計的東西,但是 ...
  • 官網:http://select2.github.io/examples.html 相容性: 引入文件 html js 附: select2 單選取值賦值 html: js: select2 多選取值賦值 html: js: ...
  • //如果不加border:0;的話,雖然顏色改變了,但是會顯示一條黑色的邊框。 //如果不加height:1px;的話,在firefox下會不顯示。 ...
  • SignalR 是微軟支持的一個運行在 Dot NET 平臺上的 html websocket 框架。(自動判別通訊機制) ...
  • 項目背景是外包類建站公司里,設計環節沉澱了大量可復用組件,設計師往往只需要微調組件就拼湊出頁面,交付給前端,理論上這些組件在前端也可以復用,但實際上前端每次都要重新實現整個頁面,浪費很多人力。 這個項目的思路是,將所有組件開發出來,統一錄入到一個平臺上管理,設計師可以到平臺上挑選組件,並實時預覽和調... ...
  • 最近用了下bootstrap,雖然好看,但是控制項跟之前用的easyui相差很大,功能太少,不得不自己寫。 花了幾個小時把tabs控制項擴展了下。下麵是代碼 頁面代碼: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Typ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...