iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >Ajax的使用示例
  • 779
分享到

Ajax的使用示例

2024-04-02 19:04:59 779人浏览 八月长安
摘要

这篇文章给大家分享的是有关ajax的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax 简介Ajax被认为是(Asynchronous(异步) javascript

这篇文章给大家分享的是有关ajax的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Ajax 简介

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

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

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

通常不用刷新网页而与服务器通讯的方法:

  • Flash 框架

  • Frameset:如果使用一组框架构造了一个网页,可以只更新其中一个框架,而不必惊动整个页面

  • XMLHttpRequest:该对象是对 JavaScript 的一个扩展,可使网页与服务器进行通信。是创建 Ajax 应用的最佳选择。实际上通常把 Ajax 当成XMLHttpRequest(XHR) 对象的代名词

ajax基本使用

  ajax在我们的开发中是必须使用的一个技术,ajax即异步的javascript和xml但是现在我们通常使用JSON来完成数据的交互,ajax职责很单一就是数据的交互,发送数据接收数据是它的核心功能也是唯一的功能。

  ajax的实现依赖XMLHttpRequest,它的基本使用如下:

var xhr;
window.XMLHttpRequest?xhr = new XMLHttpRequest():xhr = new ActiveXObject("Microsoft.XMLHTTP");
xhr.open("get","demo!reGISter.action?name=zt&age=23",true);
xhr.send(null);
xhr.onreadystatechange = function(){
  if(xhr.readyState==4&&xhr.status==200){
   alert(jsON.parse(xhr.responseText));
  }
}

  ajax的职责就是发送数据和接收数据我们基本使用流程为:

  1.获取一个XMLHttpRequest对象

  2.发送数据

  3.接收处理服务器返回的数据

  根据上面的步骤来实现一个异步请求数据的过程,首先获取一个xhr对象,在现代浏览器中我们可以直接通过实例化来获取一个xhr对象:var xhr = new XMLHttpRequest();在IE5、IE6中我们必须使用ActiveXObject来获取xhr对象:var xhr = new ActiveXObject("Microsoft.XMLHTTP")。

  此时我们已经得到了xhr对象接下来就是发送数据,通过xhr.open()方法来执行发送数据的方式,xhr.open()可以接收5个参数,我们经常使用的是前三个:

xhr.open(arg1,arg2,arg3)

  arg1表示请求数据的方式一般为get或者post

  arg2表示请求的服务器地址

  arg3表示本次请求是同步还是异步,ajax的突出特点就是异步所以我们一般都是使用异步的方式第三个参数设置为true(true表示进行异步请求false表示进行同步请求)

  xhr.open()方法只是准备一个请求,在调用open之后并不会和服务器进行通讯,而是在调用send()函数之后才会和服务器开始通讯,send()函数的参数将作为请求体发送到服务端。如果我们在open()函数中指定请求的方式为get通常我们将send()设置为xhr.send(null),如果我们希望通过请求体发送数据则要将open()函数的请求方式设置为post同时将我们需要发送的数据作为send()函数的参数:xhr.send(param),在调用send()函数之后,和服务器的通讯就开始了。

  对xhr的所有的设置都应该在send()函数之前设置好:

 xhr.open(...);
 xhr.setRequestHeader(...);
 xhr.overrideMimeType(...);
 xhr.onreadystatechange = function(){...};
 xhr.send(...);

   但是由于xhr.onreadystatechange是一个事件,所以其放在send()之后也是可以执行的,出于易读性我们一般都将对xhr的设置放在send()函数之前。

  在send()之后可以通过xhr.readyState和xhr.status的来监测本次请求的状态,如果满足xhr.readyState==4&&xhr.status==200则本次请求成功:

在请求成功时我们可以通过xhr.responseText来获取服务器返回的数据,需要注意xhr.responseText是一个字符串

Ajax的使用示例

ajax常用API

  上面的请求过程是一个最基本的请求过程xhr对象还有几个经常使用的方法分别为xhr.abort()、xhr.setRequestHeader()、xhr.overrideMimeType()。

  xhr.abort():终止一个请求,直接调用即可不需要设置参数

xhr.abort()

  xhr.setRequestHeader():设置发送的请求头:

xhr.setRequestHeader("Content-Type","application/json; charset=utf-8")

  第一个参数表示要设置的header,第二个参数表示要设置的header的值。xhr.setRequestHeader()必须在xhr.open()和xhr.send()之间,否则会抛出异常,同时xhr.setRequestHeader()的第一个参数是对大小写不敏感的只要我们字母写的对就能够设置成功,但是出于易读性我们要设置为正确的格式。

  xhr.overrideMimeType():重写响应头的Content-Type:

xhr.overrideMimeType('text/plain; charset=utf-8')

   xhr.overrideMimeType()同样要设置在xhr.send()之前。

JSON.parse()和JSON.stringify()使用

  JSON.parse()用来将一个对象转换为字符串,JSON.stringify()用来将一个字符串转换为对象。在利用ajax进行数据交互的过程中返回的数据多数的时候是一个JSON格式的字符串,如果服务器给我们返回了数据此时我们就需要利用JSON.parse()来解析返回的数据(xhr.responseText即为服务器返回的数据):

xhr.onreadystatechange = function(){
  if(xhr.readyState==4&&xhr.status==200){
 var data = JSON.parse(xhr.responseText);
  }
}

   在使用post方式发送数据的过程中,如果不是文件上传一般情况下传输的也是一个JSON数据,要想能够成功的发送到后台就需要用JSON.stringify()来将JSON对象来转换为一个字符串,同时Content-Type要设置为application/json:

var sendData = {name:"zt",age:23};
...
xhr.setRequestHeader("Content-Type","application/json; charset=utf-8");
xhr.send(JSON.stringify(sendData));

  另外利用JSON.parse()和JSON.stringify()可以实现一个对象的深拷贝功能:

var sendData = {name:"zt",age:23};
var copyData = JSON.parse(JSON.stringify(sendData));

$.ajax基本使用

   为了方便使用JQ为我们封装好了一个ajax来方便我们的使用:

$.ajax({
 type:"post",//请求方式
 url:"url",//请求地址
 data:"...",//发送至服务端的数据
 contentType:"...",//设置发送数据的类型如果data是一个json字符串这里要设置为application/json
 success:function(data){...},//请求成功的回调函数data可看做是服务器返回的数据
 error:function(){...}//请求失败的回调函数
 });

  或者:

$.ajax({
 type:"post",
 url:"url",
 data:"...",
 contentType:"...",
 })
 .done(function(data){...})
 .fail(function(){...});

  回调函数中的data即为服务器返回的数据的一个代理,直接使用即可。

  为了简化我们的开发JQ提供了一些全局设置函数包括$.ajaxSetup()、$.()ajaxStart()、$().ajaxStop()、$().ajaxComplete()、$().ajaxError()、$().ajaxSuccess()、$().ajaxSend()。

  $.ajaxSetup()用来设置基本的参数例如:

$.ajaxSetup({
 type:"post",
 contentType:"application/json; charset=utf-8"
 });

  我们在使用$.ajax时可以直接这样设置:

 $.ajax({
 url:"",
 success:function(){...},
 error:function(){...}
 })

  最终等价于:

 $.ajax({
 type:"post",
 contentType:"application/json; charset=utf-8",
 url:"",
 success:function(){...},
 error:function(){...}
 })

  $().ajaxStart()、$().ajaxStop()、$().ajaxComplete()、$().ajaxError()、$().ajaxSuccess()、$().ajaxSend()都是用来设置一些全局回调函数的。例如我们在提交数据时为了防止多次提交我们需要在发送请求时产生一个loading遮罩在数据发送完成后取消遮罩,如果在每一次ajax请求时我们都设置一次就会很麻烦,此时我们就可以用全局回调函数来简化我们的操作:

  利用全局事件在请求开始时产生一个遮罩在请求完成时取消遮罩:

$(document).ajaxStart(function(){
 loadingMask.show();
 });
 $(document).ajaxComplete(function(){
 loadingMask.hide();
 });

感谢各位的阅读!关于“Ajax的使用示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Ajax的使用示例

本文链接: https://www.lsjlt.com/news/79716.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Ajax的使用示例
    这篇文章给大家分享的是有关Ajax的使用示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax 简介Ajax被认为是(Asynchronous(异步) JavaScript ...
    99+
    2024-04-02
  • 使用Ajax的示例分析
    这篇文章主要为大家展示了“使用Ajax的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“使用Ajax的示例分析”这篇文章吧。什么是ajaxajax(异步j...
    99+
    2024-04-02
  • ajax的定义的示例与使用
    本篇内容介绍了“ajax的定义的示例与使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!AJAX全称为“A...
    99+
    2024-04-02
  • ajax的应用示例
    本篇内容介绍了“ajax的应用示例”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Ajax原理及使用的示例分析
    这篇文章给大家分享的是有关Ajax原理及使用的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   Ajax原理   AJAX即“Asynchronous Javasc...
    99+
    2024-04-02
  • AJAX和JSP混合使用的示例分析
    这篇文章将为大家详细讲解有关AJAX和JSP混合使用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先要知道AJAX 是一种在无需重新加载整个网页的情况下,能够...
    99+
    2024-04-02
  • ajax的示例分析
    这篇文章主要介绍了ajax的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。AJAX不是JavaScript的规范,它只是一个哥们“发...
    99+
    2024-04-02
  • 使用Jquery+Ajax+Json实现分页显示的示例分析
    这篇文章将为大家详细讲解有关使用Jquery+Ajax+Json实现分页显示的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先给大家展示下运行效果图: ...
    99+
    2024-04-02
  • Python flask使用ajax上传文件的示例代码
    目录前言JSForm的enctype属性InputMIME类型(更多直接百度,类型超乎你的想想)上传单个文件html代码部分javascript代码部分flask 视图函数部分上传多...
    99+
    2024-04-02
  • ajax通用代码的示例分析
    这篇文章主要介绍ajax通用代码的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:<html> <head> <script ...
    99+
    2024-04-02
  • ASP.NET与Ajax的示例分析
    这篇文章将为大家详细讲解有关ASP.NET与Ajax的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Ajax 已经很流行一阵子了,现在谈 Ajax 觉得有点老土,...
    99+
    2024-04-02
  • JQuery中AJAX的示例分析
    这篇文章将为大家详细讲解有关JQuery中AJAX的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。$.ajax({   url:"h...
    99+
    2024-04-02
  • 反向Ajax的示例分析
    这篇文章主要为大家展示了“反向Ajax的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“反向Ajax的示例分析”这篇文章吧。场景1:当有新邮件的时候,网页...
    99+
    2024-04-02
  • Ajax与JSON的示例分析
    这篇文章主要介绍了Ajax与JSON的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 1.1.1 摘要...
    99+
    2024-04-02
  • Ajax请求的示例分析
    这篇文章将为大家详细讲解有关Ajax请求的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、定义1、什么是AjaxAjax:即异步 JavaScript 和XML。Ajax是一种用于创建快速动态网...
    99+
    2023-06-29
  • 实现Ajax的示例分析
    小编给大家分享一下实现Ajax的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Ajax:  Asynchron...
    99+
    2024-04-02
  • AJAX原理的示例分析
    这篇文章将为大家详细讲解有关AJAX原理的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先上原理图: 背景:   &nbs...
    99+
    2024-04-02
  • JavaScript中Ajax的示例分析
    这篇文章给大家分享的是有关JavaScript中Ajax的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax1.创建步骤:1.创建一个XMLHttpRequest异步...
    99+
    2024-04-02
  • 用AJAX技术聚合RSS284455示例
    有时候,你的Blog可能需要这样的功能:  在自己Blog上聚合并显示朋友Blog的最新文章,这样方便自己及时了解朋友的消息,另外,也方便访问者找到和本Blog相关的blo...
    99+
    2023-05-20
    用AJAX技术聚合RSS
  • Ajax与JavaScript的示例分析
    这篇文章给大家分享的是有关Ajax与JavaScript的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ajax通信与数据格式无关,从服务器获取的数据不一定是XML数据。...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作