最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Ajax完成與后臺服務(wù)器的數(shù)據(jù)交互詳解

 更新時間:2025年07月09日 08:30:56   作者:星星不打輰  
Ajax是一種在Web應(yīng)用程序中實現(xiàn)前后端交互的技術(shù),通過使用Ajax,前端頁面無需刷新即可與后端服務(wù)器進行數(shù)據(jù)交換,這篇文章主要介紹了如何使用Ajax完成與后臺服務(wù)器的數(shù)據(jù)交互的相關(guān)資料,需要的朋友可以參考下

Ajax(異步的JavaScript和XML)

##注意Ajax為異步的

異步:即為不同步,同步相當于是我們在向后臺發(fā)送請求的時候,必須返回一個響應(yīng)數(shù)據(jù)才可以在瀏覽器下一步操作

(形象描述:一次聊天,兩者進行一問一答)–》這就叫做同步

異步就是一者向另外一者發(fā)送信息,但是不等對方回復(fù),可以繼續(xù)向其發(fā)送信息

**Ajax與服務(wù)器之間進行交換數(shù)據(jù),更新的是部分網(wǎng)頁的信息,而不是將整個網(wǎng)頁進行更新操作。**相當于在注冊界面的時候,用戶名,密碼校驗就算有一方未通過但是另外一方任然保留信息,而不需要像同步的那樣去更新整個網(wǎng)頁

Ajax的交互原理:

Ajax支持異步訪問,網(wǎng)頁局部刷新,主要依賴于核心對象:XMLHttpRequest,Ajax就是通過XMLHttpRequest對象發(fā)送異步請求的

通過axios事項Ajax的異步操作:

axios為鏈式編程,每調(diào)用一個方法返回一個對象

axios.get().then().catch().finally();

then方法執(zhí)行在后臺響應(yīng)成功的時候

catch方法執(zhí)行在出現(xiàn)Ajax請求異常的時候

finally方法不論請求響應(yīng)成功與否都要執(zhí)行的方法

導(dǎo)入axios:

<script src="js/axios-0.18.0.js"></script>

使用axios對象調(diào)用函數(shù)向后臺服務(wù)器發(fā)送ajax的get異步請求

/*整體: axios.get().then().catch().finally();*/
          1)get()函數(shù)表示兩后臺服務(wù)器發(fā)送get請求,格式:
              get(url?key=value&key=value...);===axios.get("/axiosDemo01Servlet?username=axios&password=1234")
          2)then() 處理后臺服務(wù)器響應(yīng)的,格式:
                then(function(接收響應(yīng)數(shù)據(jù)的對象名){
                    處理響應(yīng)的代碼
                });

                then(function (resp){
                 console.log(resp);
             })
             后臺響應(yīng)數(shù)據(jù):
                resp={
                        data: 'axios實現(xiàn)ajax異步get請求,username=鎖哥',
                        status: 200,
                        statusText: '',
                        headers: {…},
                        config: {…},
                    }

                resp.data就可以獲取 數(shù)據(jù): axios實現(xiàn)ajax異步get請求,username=鎖哥

          3)catch() :處理異常
                catch(function (error) {
                    console.log(error);
                })

                let person ={
                    username:"鎖哥",
                    age:18
                }

使用axios對象調(diào)用函數(shù)向后臺服務(wù)器發(fā)送ajax的post異步請求

<script type="text/javascript">
    //1.使用axios對象調(diào)用函數(shù)向后臺服務(wù)器發(fā)送ajax異步請求
    /*
        整體: axios.post().then().catch().finally();
          1)post()函數(shù)表示向后臺服務(wù)器發(fā)送post請求,格式:
              post(url,key=value&key=value...);===axios.post("/axiosDemo01Servlet","username=鎖哥&password=1234")
          2)then() 處理后臺服務(wù)器響應(yīng)的,格式:
                then(function(接收響應(yīng)數(shù)據(jù)的對象名){
                    處理響應(yīng)的代碼
                });
            其實在then函數(shù)中的回調(diào)函數(shù)我們可以使用es6的新語法,箭頭函數(shù):
                (參數(shù))=>{函數(shù)體}
            格式:
            then(resp=>{
                    函數(shù)體
            });
     */
    /*
             說明:
                1.http://localhost:8080/axiosDemo03Servlet 表示后臺服務(wù)器地址
                2.username=鎖哥&password=1234:表示向后臺攜帶的參數(shù)
    */
    //使用es6的箭頭函數(shù)簡化上述回調(diào)函數(shù)的寫法
    // TODO:post方法的URL和請求參數(shù)之間用逗號分隔
    axios.post("http://localhost:8080/axiosDemo03Servlet","username=Java&password=1234")
        .then(Response=>{
            //后臺響應(yīng)成功相應(yīng)數(shù)據(jù)
            console.log(Response);
        })
        .catch(error=>{
            //后臺響應(yīng)失敗相應(yīng)數(shù)據(jù)
            console.log(error);
            console.log("響應(yīng)失敗");
        })
        .finally(()=>{
            //無論響應(yīng)成功還是失敗都要執(zhí)行的代碼
            console.log("無論響應(yīng)成功還是失敗都要執(zhí)行的代碼");
        });

</script>

綜合案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="">
    <input type="text" name="username" placeholder="請輸入用戶名" id="username">
    <span id="usernameSpan"></span>
    

    <input type="password" name="password" placeholder="請輸入密碼"> 

    <button>提交</button>
</form>
<!--  導(dǎo)入axios類庫  -->
<script type="text/javascript" src="js/axios-0.18.0.js"></script>
<script type="text/javascript">
    /*
        說明:
            1.后臺地址url:"http://localhost:8080/registerServlet"
            2.后臺需要根據(jù)key即參數(shù)名是username來獲取前端提交的用戶名數(shù)據(jù)
            3.后臺已經(jīng)存在的用戶名是:"巖巖"
     */
    //1、給用戶名輸入框綁定離焦事件
    document.getElementById("username").onblur=()=>{
        //2、獲取用戶名輸入框中的數(shù)據(jù)
        //this表示當前事件onblur的標簽對象document.getElementById("username")
        let usernameValue=document.getElementById('username').value;
        // let usernameValue=this.value;
        console.log(usernameValue);
        //判斷是否輸入數(shù)據(jù)
        //trim() 方法用于刪除字符串的頭尾空白符再返回字符串
        if(usernameValue.trim()!=''){
           //此邏輯表示用戶名輸入框中有數(shù)據(jù)
            //3、向后臺發(fā)送ajax請求
            axios.post("http://localhost:8080/registerServlet","username="+usernameValue)
            .then(resp => {
                //4、處理響應(yīng)數(shù)據(jù)
                // console.log(resp);
                if(resp.data){
                    document.getElementById("usernameSpan").innerHTML="用戶名可用";
                    //通過JS代碼實現(xiàn)css樣式設(shè)置字體顏色為綠色
                    document.getElementById("usernameSpan").style.color="green";
                }else{
                    document.getElementById("usernameSpan").innerHTML="用戶名不可用";
                    //通過JS代碼實現(xiàn)css樣式設(shè)置字體顏色為紅色
                    document.getElementById("usernameSpan").style.color="red";
                }
            });
        }
    }
</script>
</body>

</html>

總結(jié) 

到此這篇關(guān)于如何使用Ajax完成與后臺服務(wù)器的數(shù)據(jù)交互的文章就介紹到這了,更多相關(guān)Ajax與后臺服務(wù)器數(shù)據(jù)交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

巴中市| 宁陵县| 同心县| 丽水市| 时尚| 万源市| 肇州县| 白朗县| 进贤县| 顺平县| 汶上县| 毕节市| 思南县| 都匀市| 定西市| 杨浦区| 高安市| 聂拉木县| 彭阳县| 离岛区| 嫩江县| 华安县| 潜山县| 新化县| 阜宁县| 常熟市| 罗城| 邢台市| 普兰店市| 秦安县| 綦江县| 中方县| 长春市| 永靖县| 宜丰县| 墨玉县| 仁化县| 扎兰屯市| 南和县| 城口县| 环江|