博主信息
博文 32
粉丝 0
评论 0
访问量 34958
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
jQuery中常用的Ajax方法($.get(),$.post(),$.ajax()的使用方式)--2019年5月22日
ChenPJ的博客
原创
980人浏览过

1.  $.get()的小案例

本例使用$.get()方式向服务器请求数据,并将返回数据添加到<select>标签中,完成<option>的填充。

代码如下:

<script src="../static/js/jquery-3.4.1.js"></script>
<script>
    $.get('inc/school.php', 
    function(returnData,returnStatus){
        if (returnStatus === 'success') {
            $(returnData).appendTo('#organization'); // 将返回数据添加到<select>标签内。也可以使用$('#school').html(data);    
        }
    });
    $('#organization').on('change', getData);
    function getData() {   
        $.get(
            'inc/detail.php',
            // 请求参数,以对象字面量形式
            {key: $(this).val()},   // $(this): 触发事件的对象,此处为<select>。也可以写成$("#organization")。或者$(event.target),event是jQuery的对象,代表触发的事件。
            // 请求成功的回调方法
            function (returnData,returnStatus){          
                if (returnStatus === 'success') {
                    $('#detail').html(returnData);   // 更新页面中的DOM元素的内容,显示请求的数据
                    $('[value=""]').remove();  // 删除提示信息: "请选择"
                } else {    
                    $('#detail').html('<span style="color:red">请求错误</span>');  //出错,未拿到响应数据
                }
            },    
            'html'  // 响应数据的格式,html/json/xml,可省略,会自动判断
        );
    }
</script>

 2.  $.post()  小案例

本例使用$.post()方法向服务器提交表单数据进行验证,并接收服务器返回的验证结果数据。

<script src="../static/js/jquery-3.4.1.js"></script>
  <script>
   var logName = $("#logName");
   var logPwd = $("#logPwd");
   var btnSubmit = $("#btnSubmit");
   btnSubmit.on("click", isEmpty);
   function isEmpty() {
    if (logName.val().trim().length === 0) {
     logName.after('<span style="color:red">邮箱不能为空</span>').next().fadeOut(2000);
     logName.focus();
     return false;
    } else if (logPwd.val().trim().length === 0) {
     logPwd.after('<span style="color:red">密码不能为空</span>').next().fadeOut(2000);
     logPwd.focus();
     return false;
    } else if (logPwd.val().length < 6) {
     logPwd.after('<span style="color:red">密码不能少于6位</span>').next().fadeOut(2000);
     logPwd.focus();
     return false;
    } else {
     checkUser()
    }
   }

   function checkUser() {
    $.post(
     'inc/check.php', // 处理post请求的php脚本
     
     // 要发送到服务器上的数据,可写成查询字符串形式的数据'email='+$('#email').val()+'&password='+$('#password').val(),
     // 此处写成对象字面量形式,最终也会转为查询字符串形式
     {
      email: logName.val(),  
      password: logPwd.val()
     },
     // 请求成功后的回调
     function(returnData) {
     
      // 实际开发过程中,大多只用到returnData,status和xhr极少使用,另外,data和status也可用xhr对象获取      
      if (returnData.status === 1) {      
       btnSubmit     // 选择当前按钮
       .after('<span style="color: green"></span>')    // 在按钮后添加一个<span>用来显示提示信息
       .next()     // 切换到button的下一个兄弟元素,这时就是刚刚添加的<span>
       .html(returnData.message) // 设置<span>中的文本内容
       .fadeOut(2000);     // 将<span>的内容2秒后淡出
      } else {
       btnSubmit
       .after('<span style="color: red"></span>')
       .next()
       .html(returnData.message)
       .fadeOut(2000);
      }
     },
     'json'  // 返回的数据类型
    );
   }
  </script>

3. $.ajax() 小案例

本例使用$.ajax()方法向服务器提交表单数据进行验证,并接收服务器返回的验证结果数据。

<script src="../static/js/jquery-3.4.1.js"></script>
  <script>
   var logName = $('#logName');
   var logPwd = $('#logPwd');
   var btnSubmit = $('#btnSubmit');
   btnSubmit.on('click', isEmpty);
   function isEmpty() {
    if (logName.val().trim().length === 0) {
     logName.after('<span style="color:red">邮箱不能为空</span>').next().fadeOut(2000);
     logName.focus();
     return false;
    } else if (logPwd.val().length === 0) {
     logPwd.after('<span style="color:red">密码不能为空</span>').next().fadeOut(2000);
     logPwd.focus();
     return false;
    } else if (logPwd.val().length < 6) {
     logPwd.after('<span style="color:red">密码不能少于6位</span>').next().fadeOut(2000);
     logPwd.focus();
     return false;
    } else {
     checkUser()
    }
   }
   function checkUser() {
    // $.ajax 参数的属性大约有20多个, 常用的是以下5个, 必须掌握
    $.ajax({
     // 1. 请求类型
     type: 'POST',
     // 2. 请求的URL地址
     url: 'inc/check.php',
     // 3. 需要发送到服务器上的数据,以对象方式
     data: {
      email: logName.val(),
      password: logPwd.val()
     },
     // 4. 请求成功后的回调处理
     success: function(returnData) {        
        if (returnData.status === 1) {
         btnSubmit     // 选择当前按钮
         .after('<span style="color: green"></span>')    // 在按钮后添加一个<span>用来显示提示信息
         .next()     // 切换到button的下一个兄弟元素,这时就是刚刚添加的<span>
         .html(returnData.message) // 设置<span>中的文本内容
         .fadeOut(2000);     // 将<span>的内容2秒后淡出
        } else {
         btnSubmit
         .after('<span style="color: red"></span>')
         .next()
         .html(returnData.message)
         .fadeOut(2000);
        }
       },     
     dataType: 'json'  // 5. 期望服务器返回的数据类型, 可选
    })
   }
</script>


Get方式:

用get方式可传送简单数据,在某些情况下,get方法存在安全性问题。

Post方式:

当使用POST方式时,传递的数据量要比使用GET方式传送的数据量大的多。

何时使用Get请求,何时使用Post请求:

Get请求的目的是给予服务器一些参数,以便从服务器获取数据

Post请求的目的是向服务器发送一些参数,例如form中的内容,配合服务器完成工作

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

$.ajax()方法

$.get, $,post都是基于$.ajax,只是简化了ajax的调用

$.ajax({type: "GET"}) == $.get()

$.ajax({type: "POST"}) == $.post()

二者只能传入4个基本的参数,如果需要在出错时执行函数,或者设置同步,或者其它的复杂业务就只能调用$.ajax。

批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学