javascript的ajax功能的概念和示例

来源:http://www.cnblogs.com/sweetXiaoma/archive/2016/10/16/5967598.html
-Advertisement-
Play Games

AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML)。 個人理解:ajax就是無刷新提交,然後得到返回內容。 對應的不使用ajax時的傳統網頁如果需要更新內容(或用php做處理時),必須重載整個網頁頁面。 示例: html代碼如下 ./te ...


AJAX即“Asynchronous Javascript And XML”(非同步JavaScript和XML)。

個人理解:ajax就是無刷新提交,然後得到返回內容。

對應的不使用ajax時的傳統網頁如果需要更新內容(或用php做處理時),必須重載整個網頁頁面。

示例:

html代碼如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax示例</title>
<style>
    #loginForm {
         border-collapse: collapse;
    }
    #loginForm,#loginForm td {
        border:#550 1px solid;
        text-align:center;
    }
</style>
</head>
<body>
    <table id="loginForm">
        <tr>
            <td>用戶名:</td>
            <td><input type="text" id="userName"/></td>
        </tr>
        <tr>
            <td>密碼:</td>
            <td><input type="password" id="password"/></td>
        </tr>
        <tr>
            <td colspan=2><input id="submitBtn" type="submit" value="ajax提交"/></td>
        </tr>
    </table>

    <script type="text/javascript" language="javascript">
        document.getElementById('submitBtn').addEventListener('click', clickSubmit);
        function clickSubmit() {
            makeRequest('./test.php');
        }

        var req = false;
        /**
         * 創建ajax請求
         * url 處理請求的php位置
         */
        function makeRequest(url) {
            req = false;
            //創建一個XMLHTPP實例
            if (window.XMLHttpRequest) { // ie9以上和w3c瀏覽器的對象
                req = new XMLHttpRequest();
                if (req.overrideMimeType) {
                    //如果伺服器的響應沒有XML mime-type header,某些Mozilla瀏覽器可能無法正常工作. 
                    //為瞭解決這個問題, 如果伺服器響應的header不是text/xml,可以調用其它方法修改該header. 
                    req.overrideMimeType('text/xml');
                }
            } else if (window.ActiveXObject) { // IE678專用
                try {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    alert('new window.ActiveXObject() failed!');
                }
            }

            if (!req) {
                alert('Giving up :( Cannot create an XMLHTTP instance');
                return false;
            }
            //指定處理響應的JavaScript函數名. 
            req.onreadystatechange = alertContents;
            //測試傳遞 用戶名和密碼
            var user_name = document.getElementById('userName').value;
            var user_pwd = document.getElementById('password').value;
            //open(請求方式,準確的本域功能變數名稱,是否非同步);
            //GET或POST方式
            //----GET方式請求------
            //req.open('GET', url+'?user_name='+user_name+'&user_pwd='+user_pwd, true);
            //req.send(null);
            //----POST方式請求------
            //發送請求 如果open是POST方式可以發送字元串給伺服器,也可以在open的第二個參數同時加上get傳輸
            ////req.open('POST', url+'?get1='+user_name+'&get2='+user_pwd, true);
            req.open('POST', url, true);
            req.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
            req.send('user_name='+user_name+'&user_pwd='+user_pwd);
        }
        
        /**
         * ajax請求的回調處理函數
         */
        function alertContents() {
            if (req.readyState == 4) {
                console.log(req.status);
                if (req.status == 200) {
                    alert(req.response);
                } else {
                    alert('There was a problem with the request.');
                }
            }

        }
    </script>
</body>
</html>

 

./test.php代碼如下

<?php
header('content-type:text/html;charset=utf-8');

var_dump($_POST);//獲取到post傳遞的數據
var_dump($_GET);

 

 

其它參考鏈接:http://www.jb51.net/article/41336.htm


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

-Advertisement-
Play Games
更多相關文章
  • Spring介紹: spring 使用基本的 JavaBean 來完成以前只可能由 EJB 完成的事情。然而, Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java 應用都可以從 Spring 中受益。 簡單來說, Spring 是一個輕量級的控制反轉(IoC ...
  • 【Python練習題 016】 猴子吃桃問題:猴子第一天摘下若幹個桃子,當即吃了一半,還不癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 這題得倒著推。第10天還沒吃,就剩1 ...
  • 淺析設計模式中的策略模式,包含原理解讀和具體案例代碼的實現。僅為個人學習總結分享,希望圍觀者多提意見。 ...
  • 上一次的《微信小程式之小豆瓣圖書》製作了一個圖書的查詢功能,只是簡單地應用到了網路請求,其他大多數小程式應有的知識。而本次的示例是`知乎日報`,功能點比較多,頁面也比上次複雜了許多。在我編寫這個DEMO之前,網上已經有很多網友弄出了相同的DEMO,也是非常不錯的,畢竟這個案例很經典,有比較完整的AP... ...
  • 一、css文本屬性 (1)文本大小{font-size:value;} 單位:pt:9pt=12px;瀏覽器預設字體大小為16px em:1em=16px; 在CSS2.0中 xx-small:9px x-small:11px small:13px medium:16px large:19px x- ...
  • 上一文章是擴展ExtJS自帶的Date組件。在這裡將創建一個評分組件。 ...
  • 字體絕對是每一個設計非常重要的部分,設計者總是希望有最好的免費字體,以保持他們字體庫的更新。所以今天我要向設計師們分享一組用於簡潔網頁設計的光滑英文字體。這些免費的字體是適用於各種類型的設計,除了網頁,還有海報、標誌、印刷廣告等。 ...
  • 今天的這篇文章還是一篇“Hello World”,只不過開發環境有所改變——Visual Studio Code+Angular2+Webapck,也算是正式的開篇了。 一、新建一個文件夾作為此次Demo的根目錄,這裡為:“F:\Visual Studio Code\app1”,併在“命令提示符中打 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...