06-Jquery-Ajax

AJAX 是一种与服务器交换数据的技术,可以在不重新载入整个页面的情况下去访问服务器后端的数据。

一、Json格式介绍

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Json格式介绍</title>
        <script type="text/javascript">
            //json对象
            // var json = {"stuno":"001","stuname":"张三","stusex":"男"};
            // alert(json.stuname);
            
            //json数组
            // var json = [{"stuno":"001","stuname":"张三","stusex":"男"},
            //  {"stuno":"002","stuname":"李四","stusex":"男"},
            //  {"stuno":"003","stuname":"王五","stusex":"男"}];
            // alert(json[1].stuname);
            
            //json中既包含对象也包含数组
            // var json = {teacher:{"name":"孔子","sex":"男"},
            //  student:[{"stuno":"001","stuname":"张三","stusex":"男"},
            //  {"stuno":"002","stuname":"李四","stusex":"男"},
            //  {"stuno":"003","stuname":"王五","stusex":"男"}]};
            // alert(json.teacher.name); //获取老师姓名
            // alert(json.student[1].stuname); //获取第二个学生姓名
            
            //json对象中包含数组
            // var json = 
            //  [{"code":"XZB","name":"行政部",
            //      "Emp":[{"no":"001","name":"刘德华","sex":"男"},
            //      {"no":"002","name":"张学友","sex":"男"},
            //      {"no":"003","name":"蔡依林","sex":"女"}]},
            //  {"code":"KFB","name":"开发部",
            //      "Emp":[{"no":"004","name":"周杰伦","sex":"男"},
            //      {"no":"005","name":"王珞丹","sex":"女"},
            //      {"no":"006","name":"蔡徐坤","sex":"男"},
            //  ]}]
            // alert(json[1].name); //公司的第二个部门名称
            // alert(json[1].Emp[1].name);//公司第二个部门第二个员工姓名
            
        </script>
    </head>
    <body>
    </body>
</html>

二、Ajax获取Hello,world

<!-- 
模拟后端数据:www.fastmock.site
返回数据为:{"result":"hello"}
 -->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Ajax基本使用</title>
        <script src="js/jquery.js"></script>
        <script>
            $(function(){
                $("#myButton").click(function(){
                   //ajax获取文本
                   // $.ajax({
                      //  url: "https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/Hello",
                      //  type: "post", 
                      //  //async: true,  //默认为true,异步请求 
                      //  //data: "act=HelloWorld",
                      //  dataType: "text",
                      //  success: function (msg) {
                         //   $("#result").text(msg);
                      //  },
                      //  error: function (msg) {
                         //   alert('调用失败:' + msg);
                      //  }
                   // });
                   
                   //ajax获取json
                   // $.ajax({
                      //  url: "https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/Hello",
                      //  type: "post", 
                      //  //async: true,  //默认为true,异步请求 
                      //  //data: "act=HelloWorld",
                      //  dataType: "json",
                      //  success: function (msg) {
                         //   $("#result").text(msg.result);
                      //  },
                      //  error: function (msg) {
                         //   alert('调用失败:' + msg);
                      //  }
                   // });
                   
                   //post-get请求个参数
                   //url:发送请求地址。
                   //data:待发送 Key/value 参数。
                   //callback:发送成功时回调函数。
                   //type:返回内容格式,xml, html, script, json, text, _default。
                    
                    // $.get("https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/Hello",
                    //   function (msg) {
                    //    $("#result").text(msg.result);
                    //   },
                    //   "json"
                    // );
                   
                    $.post("https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/Hello",
                        function (msg) {
                            $("#result").text(msg.result);
                        },
                        "json"
                    );                 
                                      
                });
            });
        </script>
    </head>
    <body>
        <input id="myButton" type="button" value="模拟调用后端数据">
        <br /><br />
        <h2 id="result"></h2>
    </body>
</html>

三、Ajax检查用户名是否存在

<!--
模拟后端数据:www.fastmock.site
返回数据为:
{
  "result":function({_req, Mock})
  {
    let body = _req.query;
    if(body.acc=="zhoujielun")
      return "0";
    else
      return "1";
  }
}
-->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Ajax检查用户名是否存在</title>
        <script src="js/jquery.js"></script>
        <script>
            $(function(){
                $("#btCheck").click(function(){
                   //ajax获取json
                   var acc=$("#txtAccount").val();
                   //以下两行序列化表单值提供给序列化方式参数参数data使用。
                   var data = $('#myForm').serialize(); //序列化表单值
                   data = decodeURIComponent(data, true); //如果有中文,需要此操作解码
                   $.ajax({
                       url: "https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/ck2",
                       type: "post", 
                       //async: true,  //默认为true,异步请求
                       //多个参数用&连接,例如acc=abc&pwd=123
                       //data: "acc="+acc, 
                       //多个参数用逗号连接,例如{"acc":"abc","pwd":"123"}
                       //data:{"acc":acc},
                       //序列化方式传递数据,要求表单元素name和后端参数同名
                       data:data,
                       dataType: "json",
                       success: function (json) {
                        if(json.result == "1")
                            alert('恭喜您,用户名可以使用!');
                        else
                            alert('很遗憾,该用户名已经被占用!');
                       },
                       error: function (msg) {
                           alert('调用失败:' + msg);
                       }
                   });
                
                  //  var acc=$("#txtAccount").val();
                  //  $.get("https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/ck1",
                     // {"acc":acc},
                  //    function (json) {
                        // if(json.result == "1")
                        //  alert('恭喜您,用户名可以使用!');
                        // else
                        //  alert('很遗憾,该用户名已经被占用!');
                  //    },
                  //    "json"
                  //  );
                  
                 //   var acc=$("#txtAccount").val();              
                 //   $.post("https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/ck2",
                 //     {"acc":acc},
                    // function (json) {
                    //  if(json.result == "1")
                    //      alert('恭喜您,用户名可以使用!');
                    //  else
                    //      alert('很遗憾,该用户名已经被占用!');
                 //     },
                 //     "json"
                 //   );
                    
                });
            });
        </script>
    </head>
    <body>
        <form action="#" id="myForm">
        <table width="1000" align="center">
            <caption>用户注册</caption>
            <tr>
                <td width="300" align="right" height="30">用户名:</td>
                <td width="700">
                    <input type="text" id="txtAccount" name="acc">
                    <input id="btCheck" type="button" value="检查用户名是否存在">
                </td>
            </tr>
            <tr>
                <td width="300" align="right" height="30">密码:</td>
                <td width="700">
                    <input type="password" id="txtPwd">
                </td>
            </tr>
            <tr>
                <td width="300" align="right" height="30">&nbsp;</td>
                <td width="700">
                    <input type="submit" value="注册" />
                    <input type="reset" value="取消" />
                </td>
            </tr>
        </table>
        
        </form>         
    </body>
</html>

四、Ajax加载学生信息

<!--
模拟后端数据:www.fastmock.site
返回数据为:
{
  "list|20": [{
    "name": "@name",
    "age": "@integer(10,22)",
    "email":"@email"
  }],
} 
-->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Ajax加载学生信息</title>
        <script src="js/jquery.js"></script>
        <script>
            $(function(){
                $("#myButton").click(function(){
                   $.ajax({
                       url: "https://www.fastmock.site/mock/06492f38e791d869ea222ba9698d7a5e/API/stu",
                       type: "post", 
                       //async: true,  //默认为true,异步请求
                       dataType: "json",
                       success: function (json) {
                           for(var i = 0;i<json.list.length;i++)
                           {
                               var stu = json.list[i];
                               var tr="<tr><td>"+stu.name+"</td><td>"+stu.age+"</td><td>"+stu.email+"</td></tr>";
                               $("#myTable").append(tr);
                           }
                       },
                       error: function (msg) {
                           alert('调用失败:' + msg);
                       }
                   });
                })
            })
        </script>
    </head>
    <body>
        <input id="myButton" type="button" value="加载学生信息">
        <br /><br />
        <table id="myTable" width="1000" border="1">
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>邮箱</th>
            </tr>
        </table>
    </body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,196评论 0 3
  • 一、CSS问题 1.flex布局 display:flex; 在父元素设置,子元素受弹性盒影响,默认排成一行,如果...
    陈二狗想吃肉阅读 571评论 0 9
  • 前端和后端如何交互,从网站的层面上,如何去呈现?如何和后端去交互?如何向后端获取数据和请求?需要一种方法。 一、页...
    饥人谷_远方阅读 305评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,536评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,189评论 4 8