通过Ajax发送数据--jQuery方法

1 篇文章 0 订阅

通过Ajax发送数据--jQuery方法

.load()方法:

$(document).ready(function(){
   $('#letter a').click(function(event){
       event.preventDefault();
       $("#dictionary").load('a.html');
   });
});
通过使加载的内容淡入视图而不是突然出现,.load()方法可以接受一个加载完成时触发的回调函数:

$(document).ready(function(){
    $('#letter a').click(function(event){
        event.preventDefault();
        $("#dictionary").hide().load('a.html',function(){
            $(this).fadeIn();
        });
    });
});


.getJSON()          ----------加载json文件

$(document).ready(function(){
    $('#letter a').click(function(event){
        event.preventDefault();
        $.getJSON('b.json');
    });
});

$.get()           -----get方法请求

$(document).ready(function(){
        $('#letter form').submit(function(event){
            event.preventDefault();
            $.get('f.php',{'term':$('input[name="term"]').val()},function(data){
//                其中f.php为请求服务地址,
//                    第二个参数为随请求传递给服务器的参数,
//                    第三个参数data为返回的响应参数
                $('#dictionary').html(data);
//                将返回的参数呈现在页面iddictionary的地方
            });
        });
    });

$.post()     -----post方法请求

$(document).ready(function(){
   $('#letter a').submit(function(event){
     event.preventDefault();
     var requestData = {term:$(this).text()};
     $.post('f.php',requestData,function(data){
//     其中f.php为请求服务地址,
//     第二个参数为随请求传递给服务器的表单参数,
//     第三个参数data为返回的响应参数
        $('#dictionary').html(data);
     });
   });
});

$(document).ajaxStart()

$(document).ajaxStop()                  ------全局函数,在请求开始和结束时触发执行

$(document).ready(function(){
    var $loading = $('<div id="loading">Loading....</div>').insertBefore("#dictionary");
    $(document).ajaxStart(function(){
        $loading.show();
    }).ajaxStop(function(){
        $loading.hide();
    });
});

.serialize()              ------序列化表单

该方法作用于一个jQuery对象,将匹配的DOM元素装换成能够随Ajax请求传递的查询字符串。即将表单数据一次性传递:

$(document).ready(function(){
  $('#letter form').submit(function(event){
    event.preventDefault();
    var formValue = $(this).serialize();
    $.get('f.php',formValue,function(data){
//      其中f.php为请求服务地址,
//      第二个参数为随请求传递给服务器的表单参数,
//      第三个参数data为返回的响应参数
       $('#dictionary').html(data);
    });
  });
});

Ajax错误处理

考虑到在网络或者数据发生错误的可能性,并适当地记录或者报告这些错误。

我们可以使用全局的.ajaxError()方法,处理链接出错时的情况。

可以给.load()之外的Ajax方法连缀.done()、.always().fail()方法,并通过他们添加相应的回调函数即可:

$(document).ready(function(){
   $('#letter a').click(function(event){
      event.preventDefault();
      var requestData = {term: $(this).text()};
      $.get('z.php',requestData,function(data){
         $('#dictionary').html(data);
      }).fail(function(jqXHR){
//        请求出错时,对页面的处理
          $('#dictionary').html('An error occurred: ' + jqXHR.status)
          .append(jqXHR.responseText);
       });
   });
});


其中,.status属性中包含着服务器返回的状态码。这些代码由HTTP规范定义,当触发.fail()处理程序时,根据下表解读错误:

响应码                                 说明

400                                                                      请求语法错误

401                                                                      未授权

403                                                                      禁止访问

404                                                                      未发现请求的url

500                                                                      服务器内部错误


低级Ajax方法:

       在jQuery内部,会把以上方法都对象为$.ajax()全局函数的一种变体。这个函数不针对任何特定的Ajax通信类型,而是接受一个选项对象参数,并根据该参数来决定相应的行为:

$.ajax({
   
url:'a.html',
   
success: function(data){
        $(
'#dicitionary').html(data);
   
}
})
;


使用低级的$.ajax()函数,可以获得下列特殊的好处:

1.     避免浏览器缓存来自服务器的响应。非常适合服务器动态生成数据的情况。

2.     抑制正常情况下所有Ajax交互都可以触发的全局处理程序(例如通过$.ajaxStart()注册的处理程序)

3.     在远程主机需要认证的情况下,可以提供用户名和密码。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值