欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JQuery?AJAX操作代碼

 更新時間:2023年08月09日 17:33:33   作者:梁云亮  
jQuery底層AJAX實現(xiàn),其返回其創(chuàng)建的XMLHttpRequest對象,大多數(shù)情況下無需直接操作該函數(shù),除非需要操作不常用的選項,以獲得更多的靈活性,這篇文章給大家介紹JQuery AJAX操作代碼,感興趣的朋友一起看看吧

1、服務(wù)器端

1.1、創(chuàng)建web項目

在項目根目錄下創(chuàng)建js文件夾并將JQuery文件放入其中:

在這里插入圖片描述

1.2、服務(wù)器端代碼

封裝返回結(jié)果的實體類:

public class Result {
    private Integer code;//錯誤碼
    private String msg;//提示信息
    private String data;//具體內(nèi)容
    //…… getter/setter方法、默認(rèn)構(gòu)造方法、全參構(gòu)造方法
    @Override
    public String toString() {  //返回JSON字符串
        return "{\"Result\":{"
                + "\"code\":"
                + code
                + ",\"msg\":\""
                + msg + '\"'
                + ",\"data\":\""
                + data + '\"'
                + "}}";
    }
}

處理前端頁面請求的Servlet

@WebServlet(urlPatterns = "/demoServlet")
public class DemoServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        ServletInputStream is = request.getInputStream();
        String str = inputStream2String(is);
        PrintWriter out = response.getWriter();
        out.write("server received data is :" + str);
        out.flush();
        out.close();
    }
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        PrintWriter out = response.getWriter();
        out.write(new Result(200, "OK", name + ":" + pwd).toString());
        out.flush();
        out.close();
    }
    public String inputStream2String(InputStream is) {  //字節(jié)流轉(zhuǎn)為字符流
        try (BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8"));) {
            StringBuffer buffer = new StringBuffer();
            String line = "";
            while ((line = in.readLine()) != null) {
                buffer.append(line);
            }
            return buffer.toString();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

2、客戶端

2.1、$.ajax([options])

jQuery 底層 AJAX 實現(xiàn),其返回其創(chuàng)建的 XMLHttpRequest 對象。大多數(shù)情況下無需直接操作該函數(shù),除非需要操作不常用的選項,以獲得更多的靈活性。 $.ajax() 方法的參數(shù)是一個鍵值對形式的JSON對象。最簡單的情況下, $.ajax() 可以不帶任何參數(shù)直接使用。

如果要處理$.ajax()得到的數(shù)據(jù),則需要使用回調(diào)函數(shù):

  • beforeSend:在發(fā)送請求之前調(diào)用,并且傳入一個XMLHttpRequest作為參數(shù)。
  • error:在請求出錯時調(diào)用(比如:服務(wù)器端出錯拋出異常)。傳入XMLHttpRequest對象,描述錯誤類型的字符串以及一個異常對象(如果有的話)
  • dataFilter:在請求成功之后調(diào)用。傳入返回的數(shù)據(jù)以及"dataType"參數(shù)的值。并且必須返回新的數(shù)據(jù)(可能是處理過的)傳遞給success回調(diào)函數(shù)。
  • success:當(dāng)請求之后調(diào)用(只要求請求成功,不管服務(wù)器端的業(yè)務(wù)是否成功)。傳入返回后的數(shù)據(jù),以及包含成功代碼的字符串。
  • complete:當(dāng)請求完成之后調(diào)用這個函數(shù),無論成功或失敗。傳入XMLHttpRequest對象,以及一個包含成功或錯誤代碼的字符串。

常用的options有:

  • async:(默認(rèn): true) 默認(rèn)設(shè)置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設(shè)置為 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。
  • type:請求方式, 默認(rèn)為 “GET”。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
  • url:(默認(rèn): 當(dāng)前頁地址) 發(fā)送請求的地址。
  • contentType:(默認(rèn): “application/x-www-form-urlencoded”) 發(fā)送信息至服務(wù)器時內(nèi)容編碼類型。默認(rèn)值適合大多數(shù)情況。
  • data:發(fā)送到服務(wù)器的數(shù)據(jù)。將自動轉(zhuǎn)換為請求字符串格式。GET 請求中將附加在 URL 后。必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動為不同值對應(yīng)同一個名稱。如 {foo:[“bar1”, “bar2”]} 轉(zhuǎn)換為 ‘&foo=bar1&foo=bar2’。
  • dataType:預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息來智能判斷??捎弥?
    • “text”: 返回純文本字符串
    • “json”: 返回 JSON 數(shù)據(jù) 。
    • “xml”: 返回 XML 文檔,可用 jQuery 處理。
    • “html”: 返回純文本 HTML 信息;包含的script標(biāo)簽會在插入dom時執(zhí)行。
    • “script”: 返回純文本 JavaScript 代碼。不會自動緩存結(jié)果。除非設(shè)置了"cache"參數(shù)。’’‘注意:’’'在遠(yuǎn)程請求時(不在同一個域下),所有POST請求都將轉(zhuǎn)為GET請求。(因為將使用DOM的script標(biāo)簽來加載)
    • “jsonp”: JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時,如 “myurl?callback=?” jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。

示例:

前面頁面代碼:

<%@ page pageEncoding="UTF-8" %>
<html>
    <head>
        <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
        <script type="text/javascript">
            $(function () {
                $("#btn1").click(function () {
                    $.ajax({
                        async:true,
                        type:'GET',
                        url:'${pageContext.request.contextPath}/demoServlet',
                        data:{'name':'zhangsan','pwd':'1234'},
                        dataType:'json',
                        success:function (data) {
                            console.info(data);
                        },
                        error:function () {
                            console.info("請求失敗");
                        }
                    });
                });
                $("#btn2").click(function () {
                   $.ajax({
                       type:"POST",
                       url:'${pageContext.request.contextPath}/demoServlet',
                       data:"HelloWorld",
                       dataType:'text',
                       success:function (data) {
                           console.info(data);
                       }
                   })
                });
            });
        </script>
    </head>
    <body>
        <button id="btn1">Get請求后臺數(shù)據(jù)</button>
        <button id="btn2">Post請求后臺數(shù)據(jù)</button>
    </body>
</html>

運行

單擊"Get請求后臺數(shù)據(jù)",結(jié)果:

在這里插入圖片描述

單擊"Post請求后臺數(shù)據(jù)",結(jié)果:

在這里插入圖片描述

2.2、$…get(url, [data], [callback], [type])

通過遠(yuǎn)程 HTTP GET 請求載入信息。參數(shù)

  • url:待載入頁面的URL地址
  • data: (可選)待發(fā)送 Key/value 參數(shù)。
  • callback :(可選)載入成功時回調(diào)函數(shù)。
  • type: (可選)返回內(nèi)容格式,xml, html, script, json, text, _default。

示例:

前端頁面代碼:

<%@ page pageEncoding="UTF-8" %>
<html>
<head>
    <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn1").click(function () {
                $.get('${pageContext.request.contextPath}/demoServlet',
                    {'name': 'zhangsan', 'pwd': '1234'},
                    function (data) {
                        console.info(data);
                    },
                    'json'
                );
            });
    </script>
</head>
<body>
<button id="btn1">Get請求后臺數(shù)據(jù)</button>
</body>
</html>

2.3、$.getJSON(url, [data], [callback])

通過 HTTP GET 請求載入 JSON 數(shù)據(jù)。

參數(shù)

  • url:發(fā)送請求地址。
  • data :(可選)Map待發(fā)送 Key/value 參數(shù)。
  • callback :(可選)載入成功時回調(diào)函數(shù)。

示例:

前端頁面代碼:

<%@ page pageEncoding="UTF-8" %>
<html>
<head>
    <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn1").click(function () {
                $.getJSON('${pageContext.request.contextPath}/demoServlet',
                    {'name': 'zhangsan', 'pwd': '1234'},
                    function (data) {
                        console.info(data);
                    }
                );
            });
    </script>
</head>
<body>
<button id="btn1">Get請求后臺數(shù)據(jù)</button>
</body>
</html>

2.4、$.post(url, [data], [callback], [type])

通過遠(yuǎn)程 HTTP POST 請求載入信息。參數(shù)

  • url:發(fā)送請求地址。
  • data:(可選)待發(fā)送 Key/value 參數(shù)。
  • callback: (可選)發(fā)送成功時回調(diào)函數(shù)。
  • type:(可選)返回內(nèi)容格式,xml, html, script, json, text, _default。

示例:

前面頁面代碼:

<%@ page pageEncoding="UTF-8" %>
<html>
<head>
    <script src="${pageContext.request.contextPath}/js/jquery.js"></script>
    <script type="text/javascript">
            $("#btn2").click(function () {
                $.post('${pageContext.request.contextPath}/demoServlet',"HelloWorld",
                    function (data) {
                        console.info(data);
                    },
                    'text'
                )
            });
        });
    </script>
</head>
<body>
<button id="btn2">Post請求后臺數(shù)據(jù)</button>
</body>
</html>

注意

使用AJAX時可能會報這樣的警告:

Synchronous XMLHttpRequest on the main thread is deprecated

原因是ajax執(zhí)行了同步操作,即async設(shè)置為False,當(dāng)然它并不影響程序的運行,但建議還是改成True為好(不設(shè)置默認(rèn)為True)。

到此這篇關(guān)于JQuery AJAX的文章就介紹到這了,更多相關(guān)JQuery AJAX內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jqPlot Option配置對象詳解

    jqPlot Option配置對象詳解

    如果看過本文姊妹篇《jqPlot——基于jquery的圖表繪制工具》的朋友,應(yīng)該知道jqPlot大致的操作方法;如果還是不太清楚的話,可以參考jqPlot官方網(wǎng)站的使用方法介紹。
    2009-07-07
  • jquery ajax傳遞中文參數(shù)亂碼問題及解決方法說明

    jquery ajax傳遞中文參數(shù)亂碼問題及解決方法說明

    本篇文章主要是對jquery ajax傳遞中文參數(shù)亂碼問題及解決方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • jQuery Timelinr實現(xiàn)垂直水平時間軸插件(附源碼下載)

    jQuery Timelinr實現(xiàn)垂直水平時間軸插件(附源碼下載)

    jquery.timelinr.js是一款效果非常炫酷的jQuery時間軸插件。下面腳本之家小編給大家介紹jQuery Timelinr實現(xiàn)垂直水平時間軸插件,需要的朋友參考下
    2016-02-02
  • jQuery固定元素插件scrolltofixed使用指南

    jQuery固定元素插件scrolltofixed使用指南

    ScrollToFixed (jquery Fixed plugin)能夠讓網(wǎng)頁的導(dǎo)航或表頭等固定在頂部或底部,讓用戶更方便的操作或查看信息。除了導(dǎo)航和表頭,也可以固定其他內(nèi)容,比如廣告、返回頂部等等。
    2015-04-04
  • jQuery實現(xiàn)的簡單手風(fēng)琴效果示例

    jQuery實現(xiàn)的簡單手風(fēng)琴效果示例

    這篇文章主要介紹了jQuery實現(xiàn)的簡單手風(fēng)琴效果,結(jié)合實例形式分析了jQuery基于事件響應(yīng)、頁面元素屬性動態(tài)操作實現(xiàn)手風(fēng)琴效果的方法,需要的朋友可以參考下
    2018-08-08
  • jQuery中scrollTop()方法用法實例

    jQuery中scrollTop()方法用法實例

    這篇文章主要介紹了jQuery中scrollTop()方法用法,實例分析了scrollTop()方法的功能、定義及返回或設(shè)置匹配元素的滾動條的垂直偏移量時的使用技巧,需要的朋友可以參考下
    2015-01-01
  • jquery插件制作 表單驗證實現(xiàn)代碼

    jquery插件制作 表單驗證實現(xiàn)代碼

    今天的內(nèi)容是關(guān)于表單驗證插件的制作。表單驗證控件實現(xiàn)的主要功能是,當(dāng)表單提交的時候檢查必填項是否正確填寫,同時根據(jù)需要驗證輸入信息是否符合規(guī)范
    2012-08-08
  • 省市區(qū)三級聯(lián)動jquery實現(xiàn)代碼

    省市區(qū)三級聯(lián)動jquery實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)紹了省市區(qū)三級聯(lián)動jquery實現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • JQuery 圖片的展開和伸縮實例講解

    JQuery 圖片的展開和伸縮實例講解

    本文詳細(xì)介紹下使用JQuery實現(xiàn)圖片的展開和伸縮,感興趣的朋友可以參考下哈,希望可以幫助到你
    2013-04-04
  • jQuery中過濾器的基本用法示例

    jQuery中過濾器的基本用法示例

    這篇文章主要介紹了jQuery中過濾器的基本用法,結(jié)合簡單實例形式分析了jQuery過濾器針對table表格元素屬性進(jìn)行判斷與設(shè)置的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10

最新評論