zoukankan      html  css  js  c++  java
  • JQuery Ajax方法

    一、JQuery Ajax简介:

    Ajax是与服务器交换数据的技术,实现异步更新。

    二、JQuery Ajax load()方法:

    JQuery load()方法从服务器加载元素,并将返回的数据放入到被选元素中。

    语法:$(selector).load(URL,data,callback);

    必需的 URL 参数规定您希望加载的 URL。

    可选的 data 参数规定与请求一同发送的查询字符串键/值对集合。

    可选的 callback 参数是 load() 方法完成后所执行的函数名称。

    1、URL案例

    (1)以下是用JQ-Ajax技术来更新一个div区域的内容:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6         <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
     7         <script>
     8             $(function() {
     9                 $("button").click(function() {
    10                     $("#div1").load("1.txt");
    11                 });
    12             });
    13         </script>
    14     </head>
    15     <body>
    16         <div class="div1" id="div1">注意目录和修改相同的字符编码</div>
    17         <button>Ajax-获取txt文件</button>
    18     </body>
    19 </html>

    运行结果如下所示:

    点击按钮后:(改变的文字首先要存放在一个txt文件中)

     (2)txt文件中还可以放置标签,html中部分代码如下:

    1 <script>
    2             $(function() {
    3                 $("button").click(function() {
    4                     $("#div1").load("1.txt #p1");         /*url参数中可以写JQ选择器,表示下载1.txt文件内容中的id为p1的内容*/
    5                 });
    6             });
    7 </script>

    2、callback案例:

    可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的参数:

    • responseTxt - 包含调用成功时的结果内容
    • statusTXT - 包含调用的状态
    • xhr - 包含 XMLHttpRequest 对象

    (1)callback返回成功案例

     1 <script>
     2             $(function() {
     3                 $("button").click(function() {
     4                     $("#div1").load("1.txt",function(responseTxt,statusTxt,xhr) {
     5                         if(statusTxt=="success")
     6                             alert("外部内容加载成功!");
     7                         if(statusTxt=="error")
     8                             alert("error:"+xhr.status+":"+xhr.statusTxt);
     9                     });
    10                 });
    11             });
    12 </script>

    结果:

    (2)callback返回失败案例

     1 <script>
     2             $(function() {
     3                 $("button").click(function() {
     4                     $("#div1").load("2.png",function(responseTxt,statusTxt,xhr) {    /*没有2.png这个文件*/
     5                         if(statusTxt=="success")
     6                             alert("外部内容加载成功!");
     7                         if(statusTxt=="error")
     8                             alert("error:"+xhr.status+":"+xhr.statusTxt);
     9                     });
    10                 });
    11             });
    12 </script>

    结果:

     三、JQuery get()和post()方法:

    $.get() 方法通过 HTTP GET 请求从服务器上请求数据。

    语法:$.get(URL,callback);

    必需的 URL 参数规定您希望请求的 URL。

    可选的 callback 参数是请求成功后所执行的函数名。

    $.post() 方法通过 HTTP POST 请求向服务器提交数据。

    语法:$.post(URL,data,callback);

    必需的 URL 参数规定您希望请求的 URL。

    可选的 data 参数规定连同请求发送的数据。

    可选的 callback 参数是请求成功后所执行的函数名。

     1、get案例:

    1.html部分代码:

    1 <script>
    2             $(function() {
    3                 $("button").click(function() {
    4                     $.get("1.php",function(data,status) {
    5                         alert("数据:"+data+"
    状态"+status);
    6                     })
    7                 });
    8             });
    9 </script>

    1.php代码:

    <?php
    echo '这个是php文件中的数据';
    ?>

    结果:

    2、post()方法      该方法自己未试验成功,大家可以多给指导,以下是网站代码

     html代码:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <title>菜鸟教程(runoob.com)</title>
     6 <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
     7 </script>
     8 <script>
     9 $(document).ready(function(){
    10     $("button").click(function(){
    11         $.post("/try/ajax/demo_test_post.php",{
    12             name:"菜鸟教程",
    13             url:"http://www.runoob.com"
    14         },
    15         function(data,status){
    16             alert("数据: 
    " + data + "
    状态: " + status);
    17         });
    18     });
    19 });
    20 </script>
    21 </head>
    22 <body>
    23 
    24 <button>发送一个 HTTP POST 请求页面并获取返回内容</button>
    25 
    26 </body>
    27 </html>
    demo_test_post.php文件代码:
    1 <?php
    2 $name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '';
    3 $url = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : '';
    4 echo '网站名: ' . $name;
    5 echo "
    ";
    6 echo 'URL 地址: ' .$url;
    7 ?>

    结果:

    四、$.ajax()方法:执行异步ajax请求

    语法:$.ajax({name:value, name:value, ... })

     1 <script type="text/javascript">
     2             $(function() {
     3                 $("button").click(function() {
     4                     $.ajax({
     5                         url:"1.txt",
     6                         success:function(result){
     7                         $("#div1").html(result);
     8                         }
     9                     });
    10                     $.ajax();
    11                 });
    12             });
    13 </script>

    结果:

    五、$.ajaxPrefilter() 方法:  在每个请求发送之前且被$.ajax()处理之前,处理自定义Ajax选项或修改已经存在选项

    六、$.ajaxSetup() 方法:为将来的ajax请求设置默认值

    语法:$.ajaxSetup({name:value, name:value, ... })

     1 <script type="text/javascript">
     2             $(function() {
     3                 $("button").click(function() {
     4                     $.ajaxSetup({
     5                         url:"1.txt",
     6                         success:function(result){
     7                         $("div").html(result);
     8                         }
     9                     });
    10                     $.ajax();
    11                 });
    12             });
    13 </script>

    结果:

    七、$.ajaxTransport()方法:  创建处理Ajax数据实际传送的对象

    八、$.getJSON() 方法:使用http get请求从服务器加载JSON编码的数据

        语法:$(selector).getJSON(url,data,success(data,status,xhr))

    九、$.getScript()方法: 使用 AJAX 的 HTTP GET 请求从服务器加载并执行 JavaScript
    十、$.param()方法: 创建数组或对象的序列化表示形式(可用于 AJAX 请求的 URL 查询字符串)
    十一、$.post() 方法:使用 AJAX 的 HTTP POST 请求从服务器加载数据
    十二、ajaxComplete() 方法:规定 AJAX 请求完成时运行的函数
    十三、ajaxError() 方法:规定 AJAX 请求失败时运行的函数
    十四、ajaxSend() 方法:规定 AJAX 请求发送之前运行的函数
    十五、ajaxStart() 方法:规定第一个 AJAX 请求开始时运行的函数
    十六、ajaxStop() 方法:规定所有的 AJAX 请求完成时运行的函数
    十七、ajaxSuccess()方法: 规定 AJAX 请求成功完成时运行的函数
    十八、load()方法: 从服务器加载数据,并把返回的数据放置到指定的元素中
    十九、serialize()方法: 编码表单元素集为字符串以便提交
    二十、serializeArray() 方法:编码表单元素集为 names 和 values 的数组

    二十一、Jquery中如何将数组转化为json字符串,然后再转化回来?

          json数据格式:主要由对象 { } 和数组 [ ] 组成

       JSON.stringify(arr):将json对象arr转化为字符串类型;

      JSON.parse(obj):将字符串类型的json数据转化为json对象;

         (1)从服务器端接收数据:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    
    <h2>使用 XMLHttpRequest 来获取文件内容</h2>
    <p>文件内容是标准的 JSON 格式,可以使用 JSON.parse 方法将其转换为 JavaScript 对象。</p>
    
    <p id="demo"></p>
    
    <script>
    
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            myObj = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myObj.name;
        }
    };
    xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
    xmlhttp.send();
    
    </script>
    
    <p>查看 JSON 文件数据 <a href="/try/ajax/json_demo.txt" target="_blank">json_demo.txt</a></p>
    
    </body>
    </html>
    

      结果:

               

     (2)解析异常  (JSON不能存储日期对象和函数,解决:先将其转换成字符串,再将其转换为对象)

     代码1:

    var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
    var obj = JSON.parse(text, function (key, value) {
        if (key == "initDate") {
            return new Date(value);
        } else {
            return value;
    }});
     
    document.getElementById("demo").innerHTML = obj.name + "创建日期:" + obj.initDate;
    

      

     代码2:

    var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
    var obj = JSON.parse(text);
    obj.alexa = eval("(" + obj.alexa + ")");
     
    document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();
    

      

  • 相关阅读:
    sql: 左连接 和内连接区别联系 No
    Maven 浅谈一 No
    日记090212
    js 获取asp 控件DropDownList的选择值,及所有的text和value
    ASP.NET 2.0 只读 TextBox 回发后信息丢失
    Cry On My Shoulder (背景音乐)
    Inside ASP.NET 2.0 DataBound Control 3
    ASP.NET自定义控件复杂属性声明持久性浅析
    Inside ASP.NET 2.0 DataBound Control 2
    ASP.NET 2.0 Client Callback 浅析
  • 原文地址:https://www.cnblogs.com/heisetianshi/p/11280855.html
Copyright © 2011-2022 走看看