jQuery操作Ajax

传统的Ajax是通过XMLHttpRequest实现的,不仅代码复杂,而且浏览器兼容问题也比较多。

jQuery中通过对Ajax操作的封装,极大地简化了Ajax操作的开发过程。

在这里插入图片描述

  • 参数url表示待请求页面的URL地址。
  • data表示传递的参数。
  • 参数fn表示请求成功时,执行的回调函数。
  • 参数type用于设置服务器返回的数据类型,如XML、JSON、HTML、TEXT等。
  • 参数options用于设置Ajax请求的相关选项。

在这里插入图片描述

$.post('index.php', {'id': 2, 'name': 'JS'}, function(msg) {
  console.log(msg.id + '-' + msg.name);    // 输出结果:2-JS
}, 'json');

在jQuery中对Ajax的操作方法中,$.ajax(url,[options])是底层方法。

通过该方法的options参数,可以实现$.get()$.post()$.getJSON()$.getScript()方法同样的功能。

下面列举$.ajax()方法的3种常用方式。

$.ajax('index.php');
$.ajax('index.php',{
  data: {'book': 'PHP', 'sales': 2000},  // 要发送的数据
  success:function(msg){// 请求成功后执行的函数
       alert(msg);
  }
});
$.ajax({
 type: 'GET
 url: 'index.php', 
 data: {'id': 2, 'name': 'JS'},
 success: function(msg) {
     console.log(msg);
  }
});


//等价于下列代码
$.ajaxSetup({
  type: 'GET',
  url: 'index.php',
  data:{'id': 2, 'name': 'JS'},
  success: function(msg) {
   alert(msg);
  }
});
$.ajax();

在jQuery中还为操作Ajax额外的提供了一些辅助的函数以及相关的Ajax事件处理方法,方便开发。
在这里插入图片描述

//序列化对象
var data = {'id': 2, 'name': 'Lucy', skill: ['PHP', 'JS']};
var seri_data = $.param(data);
var deseri_data = decodeURIComponent(seri_data);
// 输出结果:id=2&name=Lucy&skill%5B%5D=PHP&skill%5B%5D=JS
console.log(seri_data); 
// 输出结果:id=2&name=Lucy&skill[]=PHP&skill[]=JS
console.log(deseri_data);
//序列化表单数据
 $('input[type=button]').on('click', function () {
    console.log($('form').serialize());
    console.log($('form').serializeArray());
  });

Ajax各个事件处理的先后顺序为ajaxStart() > ajaxSend() > ajaxSuccess()ajaxError() > ajaxComplete() > ajaxStop()

根据Ajax请求是否发生错误在Ajax发送后执行ajaxSuccess()还是ajaxError()方法进行相关的处理。

 $(document).ajaxError(function() {
  console.log('ajaxError');
});
$.post('index.php', {'id': 2, 'name': 'JS'}, function(msg) {
  console.log(msg.id + '-' + msg.name);
}, 'xml');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值