ajax原生js封裝

来源:https://www.cnblogs.com/husanr/archive/2020/07/19/13339372.html
-Advertisement-
Play Games

不帶註釋的 <script>function ajax(json) { json.type = json.type ? json.type : 'get'; json.async = json.async == false ? false : true; json.contentType = jso ...


不帶註釋的

<script>
function ajax(json) { json.type = json.type ? json.type : 'get'; json.async = json.async == false ? false : true; json.contentType = json.contentType ? json.contentType : 'application/x-www-form-urlencoded'; json.data = json.data ? json.data : ''; var ajax = new XMLHttpRequest(); if (json.type.toLowerCase() == 'post') { ajax.open('post', json.url, json.async); ajax.setRequestHeader('Content-type', json.contentType + ';charset=utf-8'); ajax.send(json.data); } else { ajax.open('get', json.url + '?' + json.data, json.async); ajax.send(); } ajax.onreadystatechange = function () { if (ajax.readyState == 4 && ajax.status == 200) { json.success(ajax.response); } }
}

</script>

帶註釋的

<script>
// ajax封裝 /* 請求方式: type 非必傳,預設get 請求地址: url 必傳 是否非同步: async 非必傳 設置頭請求: contentType 非必傳 請求數據: data 非必傳 */ function ajax(json) { // 如果沒傳類型,則預設get方式 json.type = json.type ? json.type : 'get'; // 是否非同步傳送 布爾值 json.async = json.async == false ? false : true; //設置頭請求 get非必須 post方式必須設置 json.contentType = json.contentType ? json.contentType : 'application/x-www-form-urlencoded'; //傳送數據 json.data = json.data ? json.data : ''; //創建非同步對象 var ajax = new XMLHttpRequest(); // 判斷是get還是post請求 //如果是post請求 if (json.type.toLowerCase() == 'post') { //設置請求類型、請求地址、是否非同步 ajax.open('post', json.url, json.async); //post請求一定要在send前設置請求頭才行,不然會報錯 + 編碼方式 ajax.setRequestHeader('Content-type', json.contentType + ';charset=utf-8'); //發送請求,數據作為參數傳入 ajax.send(json.data); } else {//不是post就為get(第一步設置的) //設置請求類型、請求地址(可以帶參數)、請求數據、是否非同步 ajax.open('get', json.url + '?' + json.data, json.async); //發送請求 ajax.send(); } //註冊事件 onreadystatechange狀態改變就會調用 ajax.onreadystatechange = function () { //判斷伺服器是否正確響應 if (ajax.readyState == 4 && ajax.status == 200) { //用success作為成功後的回調函數 json.success(ajax.response); } } }
</script>

 


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

-Advertisement-
Play Games
更多相關文章
  • 在伺服器日常維護過程中經常需要傳輸文件,一般可以用fileZilla工具。但如果文件比較大,例如GB級別的,傳輸效率就比較慢,此時可以創建共用文件夾。 安裝環境:centos7 首先檢查是否已安裝samba,如果有安裝或有samba組件,最好先卸載再安裝: rpm -qa |grep samba 確 ...
  • 最近使用goland 和 clion 進行開發時;發現不能使用中文輸入法;就是很尷尬; 通過搜索教程,我使用的時sogou輸入法,使用的時fcitx 框架;需要配置環境變數; 這時候,我們需要在啟動腳本裡加入: export XMODIFIERS="@im=fcitx" export GTK_IM_ ...
  • 目前CSDN,博客園,簡書同步發表中,更多精彩歡迎訪問我的gitee pages MapReduce精通(一) MapReduce入門 MapReduce定義 MapReduce優缺點 優點 缺點 MapReduce核心思想 總結:分析WordCount數據流走向深入理解MapReduce核心思想。 ...
  • 有些時候想直接從資料庫查詢數據,並導出,但一些類型或狀態存儲的是01等數字,你想顯示對應的文字,這個時候就可以使用case...when語句了。 結構 case...when...then...when...then...else...end 示例 SELECT id,title,CASE type ...
  • FROM_UNIXTIME FROM_UNIXTIME(unix_timestamp[,format]) 將時間戳轉換成日期時間表示。如'YYYY-MM-DD hh:mm:ss' 或 YYYYMMDDhhmmss NOW NOW([fsp]) 返回當前時間的日期時間表示,如'YYYY-MM-DD h ...
  • 按照要求,每個取top 20,既然是隨機的取,那麼就SQL Server Order by newid()就是了,然後把所有數據union起來就得了。所以我立即給出了答案: select top 20 * from xxx where type=1 order by newid() union se ...
  • 一、緊接連載25的內容 解釋ForceOfflineReceiver類 使用AlertDialog.Builder來構建一個對話框,註意裡面有一個成員方法setCancelabel()將設置為不可以取消,否則一點擊Back鍵,又可以使用程式了,這就是導致了兩地登錄,是不符合我們的規定的。 使用set ...
  • 最近學習了一小段時間的React,對一些React開發組件的基礎有了一點認識,跟著教學視頻,自己實現了一個ToDoList組件的功能,今天把做這個組件的過程記錄一下,加深學習印象,給同樣的前端入門者做一個參考。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...