原生和jQuery的ajax用法详解

发布时间 - 2026-01-10 22:44:31    点击率:

Ajax简介

Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式 。

AJAX的缺陷

AJAX大量使用了JavaScript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。

AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。

对流媒体的支持没有FLASH好。

一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。

form数据的序列化:

 $('#submit').click(function(){
  $('#form').serialize();    //会根据input里面的name,把数据序列化成字符串;eg:name=yang
  $('#form').serializeArray();  //会根据input里面的name,把数据序列化成数组;eg:[object]
  //注意:没有name会获取不到值
  //下面两种不是jQuery的方法
  JSON.parse()  //json字符串转化为json对象
  JSON.stringify()  //json对象转化为json字符串
});

jQuery的ajax方法:

$.ajax({
  url:'/comm/test1.php',
  type:'POST', //GET
  async:true,  //或false,是否异步
  data:{
    name:'yang',age:25
  },
  timeout:5000,  //超时时间
  dataType:'json',  //返回的数据格式:json/xml/html/script/jsonp/text
  beforeSend:function(xhr){
    console.log(xhr)
    console.log('发送前')
  },
  success:function(data,textStatus,jqXHR){
    console.log(data)
    console.log(textStatus)
    console.log(jqXHR)
  },
  error:function(xhr,textStatus){
    console.log('错误')
    console.log(xhr)
    console.log(textStatus)
  },
  complete:function(){
    console.log('结束')
  }
})

原生的ajax方法:

$('#send').click(function(){
  //请求的5个阶段,对应readyState的值
    //0: 未初始化,send方法未调用;
    //1: 正在发送请求,send方法已调用;
    //2: 请求发送完毕,send方法执行完毕;
    //3: 正在解析响应内容;
    //4: 响应内容解析完毕;
  var data = 'name=yang';
  var xhr = new XMLHttpRequest();    //创建一个ajax对象
  xhr.onreadystatechange = function(event){  //对ajax对象进行监听
    if(xhr.readyState == 4){  //4表示解析完毕
      if(xhr.status == 200){  //200为正常返回
        console.log(xhr)
      }
    }
  };
  xhr.open('POST','url',true);  //建立连接,参数一:发送方式,二:请求地址,三:是否异步,true为异步
  xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');  //可有可无
  xhr.send(data);    //发送
});


# jquery  # ajax用法  # 原生Ajax 和jQuery Ajax的区别示例分析  # 原生Aajax 和jQuery Ajax 写法个人总结  # 原生js jquery ajax请求以及jsonp的调用方法  # 原生js仿jquery实现对Ajax的封装  # 简单聊一聊原生Ajax与JQuery Ajax  # 是指  # 转化为  # 数据包  # 很好  # 两种  # 不清楚  # 下一  # 可有可无  # 还不能  # 下个  # 创建一个  # 才发  # 数据格式  # 使用了  # 而无须  # 序列化  # class  # pre  # JSON  # submit 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Android Socket接口实现即时通讯实例代码  javascript如何操作浏览器历史记录_怎样实现无刷新导航  如何确保FTP站点访问权限与数据传输安全?  如何安全更换建站之星模板并保留数据?  Python文本处理实践_日志清洗解析【指导】  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何发送系统通知?(Notification渠道示例)  专业商城网站制作公司有哪些,pi商城官网是哪个?  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  jQuery 常见小例汇总  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何使用Collections进行数据处理?(实用方法示例)  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Laravel如何使用Vite进行前端资源打包?(配置示例)  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  制作公司内部网站有哪些,内网如何建网站?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  java ZXing生成二维码及条码实例分享  如何在万网自助建站平台快速创建网站?  网页设计与网站制作内容,怎样注册网站?  如何用PHP工具快速搭建高效网站?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  如何续费美橙建站之星域名及服务?  浅谈javascript alert和confirm的美化  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  如何有效防御Web建站篡改攻击?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  如何选择可靠的免备案建站服务器?  Laravel如何配置任务调度?(Cron Job示例)  如何快速生成ASP一键建站模板并优化安全性?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Android okhttputils现在进度显示实例代码  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  网站制作壁纸教程视频,电脑壁纸网站?  JavaScript实现Fly Bird小游戏  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何获取PHP WAP自助建站系统源码?  Python文件操作最佳实践_稳定性说明【指导】  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试