ajax异步小实例
AJAX案例
div 部分用于显示来自服务器的信息。
当按钮被点击时,它负责调用名为loadXMLDoc() 的函数:<html><body><div id="myDiv"><h3>Let AJAX change this text</h3></div><button type="button" onclick="loadXMLDoc()">Change Content</button></body></html>接下来,在页面的 head 部分添加一个 <script> 标签。
该标签中包含了这个loadXMLDoc() 函数:<head><script type="text/javascript">function loadXMLDoc(){.... AJAX script goes here ...}</script></head>AJAX - 创建 XMLHttpRequest 对象∙Previous Page∙Next PageXMLHttpRequest 是 AJAX 的基础。
XMLHttpRequest 对象所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用ActiveXObject)。
XMLHttpRequest 用于在后台与服务器交换数据。
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
创建 XMLHttpRequest 对象所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:variable=new XMLHttpRequest();老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:variable=new ActiveXObject("Microsoft.XMLHTTP");为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持XMLHttpRequest 对象。
在layui中使用form表单监听ajax异步验证注册的实例
在layui中使⽤form表单监听ajax异步验证注册的实例今天给⼤家介绍的是当下很流⾏的框架layui中的⼀个⼩案例、就是form表单监控提交并且使⽤ajax异步提交验证数据。
在layui中我们想使⽤哪个模块就要e('form',function{});这种形式要引⽤form内置模板,下⾯是HTML全部代码<!DOCTYPE html><html><head><meta charset="utf-8"><title>注册</title><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><meta name="keywords" content="雷⼩天"><meta name="description" content="雷⼩天博客-layui中使⽤form表单监听异步验证注册"><link rel="stylesheet" href="__RES__/layui/css/layui.css" rel="external nofollow" ><link rel="stylesheet" href="__RES__/css/global.css" rel="external nofollow" ></head><body><div class="fly-header layui-bg-black"><div class="layui-container"><a class="fly-logo" href="{:U('device/getinfo')}" rel="external nofollow" ><img src="__RES__/images/logo.png" alt="layui"></a><ul class="layui-nav fly-nav-user"><!-- 未登⼊的状态 --><li class="layui-nav-item"><a class="iconfont icon-touxiang layui-hide-xs" href="user/login.html" rel="external nofollow" ></a></li><li class="layui-nav-item"><a href="{:U('device/login')}" rel="external nofollow" rel="external nofollow" >登⼊</a></li><li class="layui-nav-item"><a href="javascript::void;" rel="external nofollow" >注册</a></li></ul></div></div><div class="layui-container fly-marginTop"><div class="fly-panel fly-panel-user" pad20><div class="layui-tab layui-tab-brief" lay-filter="user"><ul class="layui-tab-title"><li><a href="{:U('device/login')}" rel="external nofollow" rel="external nofollow" >登⼊</a></li><li class="layui-this">注册</li></ul><div class="layui-form layui-tab-content" id="LAY_ucm" style="padding: 20px 0;"><div class="layui-tab-item layui-show"><div class="layui-form layui-form-pane"><form method="post"><div class="layui-form-item"><label for="L_username" class="layui-form-label">⼿机</label><div class="layui-input-inline"><input type="text" id="signuppassdata" name="phone" required lay-verify="required" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label for="L_username" class="layui-form-label">卡号</label><div class="layui-input-inline"><input type="text" id="cardno" name="cardno" required lay-verify="required" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><button class="layui-btn" type="submit" lay-filter="reg" lay-submit="" id="signuppass" >⽴即注册</button></div></form></div></div></div></div></div></div><div class="fly-footer"><p>开门社区 2018 © <a href="/" rel="external nofollow" target="_blank"> 出品</a></p> <p><a href="JavaScript::void;" rel="external nofollow" target="_blank">雷⼩天博客</a></p></div><script src="__PUBLIC__/mobile/js/jquery.js"></script><script src="__RES__/layui/layui.js"></script><script>//监听提交e('form', function(){var form = layui.form;form.on('submit(reg)', function(data){// layer.msg(JSON.stringify(data.field));//弹出json格式所有表单的值var phone=data.field.phone;var cardno=data.field.cardno;if(phone.length!=11){layer.msg('请输⼊有效的⼿机号码', {icon: 2});return false;}var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;if(!myreg.test(phone)){layer.msg('请输⼊有效的⼿机号码', {icon: 2});return false;}if(cardno.length!=8){layer.msg('请输⼊有效的卡⽚内码!', {icon: 2});return false;}$.ajax({type:"POST",url:"index.php?m=Home&c=Device&a=ajax_reg",data:"phone="+phone+"&cardno="+cardno,dataType:"json",success:function(data){if(data.status=='yes'){layer.msg('注册成功!', {icon: 1});var url = "{:U('device/getinfo')}"; //成功跳转的urlsetTimeout(window.location.href=url,2000);}else{layer.msg(data.msg, {icon: 2});}},});return false;});});</script></body></html>下⾯是ajax_reg逻辑⽅⾯,这是我的业务逻辑⼤家没必要照搬,知道怎么⽤就⾏了//表单异步提交public function ajax_reg(){if(isset($_POST['phone'])&&isset($_POST['cardno'])){$roomnostr = M("userinfo")->where(array('cardno'=>$_POST['cardno']))->getField('roomno');if(!$roomnostr){echo json_encode(array('status'=>'no','msg'=>'⽆效的卡⽚内码,请联系管理员!'));exit();}$wechatinfo=$_SESSION['wechatinfo'];if(!$wechatinfo){echo json_encode(array('status'=>'no','msg'=>'页⾯已过期请重新扫码进⼊!'));exit();}$result= M("weixin")->where(array('openid'=>$wechatinfo['openid']))->field('is_signup,area_id')->find();$areaArr=explode('-',$result['area_id']);// $result=M("weixin")->getFieldByOpenid($_POST['openid'],'is_signup');if(isset($result)&&$result['is_signup']==1){//如果注册过⼀次下次只更新门区$new_area=$roomnostr;$reg=M("weixin")->where(array('openid'=>$wechatinfo['openid']))->save(array('area_id'=>$new_area));echo json_encode(array('status'=>'no','type'=>'signuppass','msg'=>'你已注册为该门区的租户,请勿重复注册!'));exit();}else{$data=array('is_signup'=>1,'phone'=>$_POST['phone'],'openid'=>$wechatinfo['openid'],'nickname'=>$wechatinfo['nickname'],'sex'=>$wechatinfo['sex'],'headimgurl'=>$wechatinfo['headimgurl'],'area_id'=>$roomnostr,'regtime'=>time(),'cardno'=>$_POST['cardno'],);$reg=M("weixin")->add($data);if($reg){echo json_encode(array('status'=>'yes','msg'=>'恭喜你,注册成功!'));}}}}以上这篇在layui中使⽤form表单监听ajax异步验证注册的实例就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
ajax--实现异步请求,接受响应及执行回调
参数类型说明url 为string(因此要⽤引号引起来)发送请求的地址type string请求的⽅式:post或get请求。
默认为get请求data Object或string发送服务器的数据,键值对,字符串或对象,这⾥post请求有此参数,get请求直接在地址处?后⾯传参即可dataTypestring后端返回给前端的数据类型,⽐如html,xml,json。
本来是string,在ajax请求时设置dataType为json,将字符串;类型变为json类型succ ess function请求成功后调⽤的回调函数,需要操作的东西⼀般在这⾥写⽤法success:function(e 这个字母e可以是其他英⽂){写内容} 注意这个()⾥⾯的e或者说其他东西就是后端HttpResponse或者JsonResponse返回的东西,这⾥与dataType有关error function请求失败时调⽤的回调函数asyn c Boolean是否异步处理,默认为True,false为同步处理ajax--实现异步请求,接受响应及执⾏回调ajax最⼤的优点是在不重新加载整个页⾯的情况下,可以与服务器交换数据并更新部分⽹页的内容ajax指是⼀种创建交互式⽹页应⽤的⽹页开发技术,其实就是实现前后端交互。
1)ajax是异步javascript,异步的意思即⾮阻塞,就像线程,在代码运⾏到ajax请求时,它会分成两条线,⼀条线去运⾏ajax请求⾥⾯的内容,另⼀条线去运⾏主程序(即ajax请求后⾯的代码),当然我们可以因需要异步设置成同步(即在运⾏到ajax请求时,将阻塞运⾏完ajax请求后,再去运⾏ajax外,后⾯的代码)2)注意ajax请求是由jquery发起的,因此⽤于jquery代码块中。
3)执⾏相应的视图函数(这⾥是在⼀个py,php等⽂件中创建⼀个视图函数,或者class类,给这个视图函数分级设置⼀个url地址,ajax请求中的url即填写这个完整的url地址),返回json内容。
ajax中的success方法
ajax中的success方法1.引言1.1 概述概述:AJAX(Asynchronous JavaScript and XML)是一种基于前端的技术,通过使用JavaScript和XML或JSON来实现与服务器之间的异步通信。
它的出现极大地改变了Web开发的方式,使得页面能够实现动态的数据更新,无需重新加载整个页面。
在AJAX中,success方法是作为回调函数之一,用于处理异步请求成功后返回的数据。
当请求成功时,success方法会被调用,并将服务器返回的数据作为参数传递给该方法。
本文将重点介绍和探讨AJAX中的success方法,包括其使用方法、参数和常见的应用场景。
通过深入了解success方法,读者将能够更好地理解AJAX的工作原理,并能够灵活运用这一方法来处理异步请求的返回数据。
接下来的章节将依次介绍AJAX的简介以及其中的success方法,以帮助读者更好地理解和运用该方法。
本文的目的是帮助读者掌握AJAX技术中的关键概念和方法,以便能够在实际的Web开发中灵活运用AJAX 来提升用户体验和页面的性能。
在结论部分,我们将对AJAX中的success方法进行总结,并展望其在未来的应用前景。
通过对success方法的深入学习,读者将能够更好地应用这一方法来处理异步请求返回的数据,提供更好的用户体验,同时也能够更好地理解和应用AJAX技术。
1.2文章结构文章结构是指文章的组织形式和内容安排方式。
一个良好的文章结构可以使读者更容易理解和吸收文章内容,并且可以让作者更清晰地表达自己的观点和论据。
在本篇文章中,我们将按照以下结构组织内容:1. 引言1.1 概述:介绍AJAX(Asynchronous JavaScript and XML)的基本概念和作用,以及它在现代Web开发中的重要性。
1.2 文章结构:说明本篇文章的整体结构和内容安排。
1.3 目的:阐述写作本文的目的,即介绍AJAX中的success方法的作用、用法和实际应用场景。
jQuery调用AJAX异步操作超清晰教程
JQUERY AJAX异步操作详细说明AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和XML)。
它并非一种新的技术,而是以下几种原有技术的结合体。
1)使用CSS和XHTML来表示。
2)使用DOM模型来交互和动态显示。
3)使用XMLHttpRequest来和服务器进行异步通信。
4)使用javascript来绑定和调用。
通过AJAX异步技术,可以在客户端脚本与web服务器交互数据的过程中使用XMLHttpRequest对象来完成HTTP请求(Request)/应答(Response)模型:1)不需要用户等待服务端响应。
在异步派发XMLHttpRequest请求后控制权马上就被返回到浏览器。
界面不会出现白板,在得到服务器响应之前还可以友好的给出一个加载提示。
2)不需要重新加载整个页面。
为XMLHttpRequest注册一个回调函数,待服务器响应到达时,触发回调函数,并且传递所需的少量数据。
“按需取数据”也降低了服务器的压力。
3)不需要使用隐藏或内嵌的框架。
在XHR对象之前,模拟Ajax通信通常使用hack手段,如使用隐藏的或内嵌的框架(<iframe>标签)。
下面介绍下AJAX中的重要对象:XMLHttpRequest。
XMLHttpRequest对象(XHR)XMLHttpRequest是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或接收XML及其他数据的一套API。
XMLHttpRequest对象首次以ActiveX对象形式在微软Internet Explorer(IE) 5中以引入。
其他浏览器制造商在认识到这一对象重要性后也纷纷实现了XMLHttpRequest对象,但是以一个本地JavaScript对象而不是作为一个ActiveX 对象实现。
而如今,由于安全性、标准等问题,微软已经在其IE 7中把XMLHttpRequest实现为一个本地JavaScript对象。
ajaxresult的success方法
ajaxresult的success方法(实用版3篇)目录(篇1)I.AJAXResult的success方法介绍A.AJAXResult的success方法的定义B.AJAXResult的success方法的作用C.AJAXResult的success方法的参数II.AJAXResult的success方法的应用场景A.异步加载数据B.动态更新页面C.减少页面加载时间III.AJAXResult的success方法的实现步骤A.引入AJAX库B.编写AJAX请求代码C.配置AJAX请求D.处理AJAX请求结果正文(篇1)AJAXResult的success方法是一种常用的AJAX请求结果处理方式,它可以在异步加载数据、动态更新页面等方面发挥重要作用。
下面我们来详细介绍一下AJAXResult的success方法的应用场景和实现步骤。
一、异步加载数据AJAX请求是一种异步加载数据的方式,它可以在不刷新页面的情况下向服务器发送请求,获取所需的数据,并将其动态地填充到页面上。
而AJAXResult的success方法则是处理AJAX请求结果的一种方式,它可以在请求成功时自动调用指定的回调函数,将获取到的数据传递给该函数进行处理。
二、动态更新页面使用AJAXResult的success方法可以实现动态更新页面的功能。
当服务器返回的数据发生变化时,通过调用该方法可以自动更新页面上的内容,使其与最新的数据保持一致。
这种方式可以大大减少页面刷新带来的延迟和卡顿现象,提高用户体验。
三、减少页面加载时间使用AJAXResult的success方法还可以有效地减少页面加载时间。
当页面上的某个数据需要从服务器获取时,如果使用传统的同步加载方式,会导致整个页面停止响应,等待数据加载完成。
目录(篇2)I.AJAXResult的基本概念II.AJAXResult的Success方法的作用III.AJAXResult的Success方法的参数IV.AJAXResult的Success方法的返回值正文(篇2)AJAXResult是一种在中实现异步数据请求的技术。
jQuery ajax - ajax() 使用方法和示例
实例通过 AJAX 加载一段文本: jQuery 代码: $(document).ready(function(){ $("#b01").click(function(){ htmlobj=$.ajax({url:"",async:false}); $("#myDiv").html(htmlobj.responseText); }); });HTML 代码: <div id="myDiv"><h2>321 导航</h2></div> <button id="b01" type="button"></button>亲自试一试定义和用法ajax() 方法通过 HTTP 请求加载远程数据。
该方法是 jQuery 底层 AJAX 实现。
简单易用的高层实现见 $.get, $.post 等。
$.ajax() 返回其创建 的 XMLHttpRequest 对象。
大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获 得更多的灵活性。
最简单的情况下,$.ajax() 可以不带任何参数直接使用。
注意:所有的选项都可以通过 $.ajaxSetup() 函数来全局设置。
语法jQuery.ajax([settings])参数 settings描述 可选。
用于配置 Ajax 请求的键值对集合。
可以通过 $.ajaxSetup() 设置任何选项的默认值。
参数 options 类型:Object可选。
AJAX 请求设置。
所有选项都是可选的。
async 类型:Boolean 默认值: true。
默认设置下,所有请求均为异步请求。
如果需要发送同步请求,请将此选项设 置为 false。
注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
jqueryajaxthinkphp异步局部刷新完整流程
jqueryajaxthinkphp异步局部刷新完整流程环境:ThinkPHP3.2.3,jQuery3.2前⾔:在⼀般的⽹站中,都需要⽤到jquery或者其他框架(⽐如angular)来处理前后端数据交互,thinkphp在后台也内置了⼀些函数⽤于数据交互(⽐如ajaxReturn())。
本⽂的⽬的是打通使⽤ajax在jquery和thinkphp之间的前后端数据交互过程。
正⽂:⼀、thinkphp关于ajax的介绍1.1 ajaxReturn:\Think\Controller类提供了ajaxReturn⽅法⽤于AJAX返回数据给客户端(视图、模板、js等)。
并且⽀持JSON、JSONP、XML和EVAL四种⽅式给客户端接受数据(默认JSON)。
(链接:)配置⽅式:convention.php中定义了默认编码类型为DEFAULT_AJAX_RETURN => 'JSON',分析:ajaxReturn()调⽤了json_encode()将数值转换成json数据存储格式,常⽤的数值是数组。
注意:The value being encoded can be any type except a resource(资源⽂件).All string data must be UTF-8 encoded.(链接:)举例:$data['status'] = 1;$data['content'] = 'content';$this->ajaxReturn($data);1.2 请求类型:系统内置了⼀些常量⽤于判断请求类型,⽐如:常量说明IS_GET 判断是否是GET⽅式提交IS_POST 判断是否是POST⽅式提交IS_PUT 判断是否是PUT⽅式提交IS_DELETE 判断是否是DELETE⽅式提交IS_AJAX 判断是否是AJAX提交REQUEST_METHOD 当前提交类型⽬的:⼀⽅⾯可以针对请求类型作出不同的逻辑处理,另外⼀⽅⾯可以过滤不安全的请求。
ajax的catch()的用法
以 "深度与广度兼具的中文文章"的标准,来撰写一篇关于 "ajax的catch()的用法" 的文章,内容包含了详细的解释、实际示例和个人观点。
标题:深入探讨ajax的catch()的用法1. 引言Ajax(Asynchronous JavaScript and XML)是用于创建快速动态网页的技术,它通过在不重载整个页面的情况下与服务器交换数据,实现了用异步方式更新页面的能力。
在使用Ajax时,我们经常会遇到需要处理错误的情况,而这就是catch()方法派上用场的时候。
本文将深入探讨ajax的catch()的用法,并结合实际示例进行详细解释。
2. 什么是ajax的catch()方法当使用Ajax进行数据请求时,我们经常需要处理失败的情况。
这时,catch()方法就起到了很重要的作用。
在ajax的promise对象中,catch()方法用于指定在出现错误时应该执行的操作。
它可以捕获到reject状态的promise对象,并根据情况进行相应的处理。
3. catch()方法的基本语法在ajax中,使用catch()方法的基本语法如下所示:```javascript$.ajax({url: 'example/data',method: 'GET'}).then(function(response) {// 处理成功的情况}).catch(function(error) {// 处理失败的情况});```4. catch()方法的使用示例为了更好地理解catch()方法的使用,我们来看一个实际的示例: ```javascript$.ajax({url: 'example/data',method: 'GET'}).then(function(response) {// 处理成功的情况console.log(response);}).catch(function(error) {// 处理失败的情况console.log('Error occurred: ', error);});```在这个示例中,如果ajax请求成功,then()方法中的回调函数会被执行;如果请求失败,catch()方法中的回调函数会被执行,打印出错误信息。
jQuery Ajax 实例 全解析
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到).1. load( url, [data], [callback] ) :载入远程HTML 文件代码并插入至DOM 中。
url (String) : 请求的HTML页的URL地址。
data (Map) : (可选参数) 发送至服务器的key/value 数据。
callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。
这个方法默认使用GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。
jQuery 1.2 中,可以指定选择符,来筛选载入的HTML 文档,DOM 中将仅插入筛选出的HTML 代码。
语法形如"url #some > selector"。
这个方法可以很方便的动态加载一些HTML文件,例如表单。
示例代码:$(".ajax.load").load("/yeer/archive/2009/06/10/ 1500682.html .post",function (responseText, textStatus, XMLHttpRequest){this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0]//alert(responseText);//请求返回的内容//alert(textStatus);//请求状态:success,error//alert(XMLHttpRequest);//XMLHttpRequest对象});这里将显示结果。
jQuery AJAX和JSON例子
基于jQuery的AJAX和JSON的实例通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示。
我们先来看一下html模板:<table id="datas" border="1" cellspacing="0" style="border-collapse: collapse"><tr><th>订单ID</th><th>客户ID</th><th>雇员ID</th><th>订购日期</th><th>发货日期</th><th>货主名称</th><th>货主地址</th><th>货主城市</th><th>更多信息</th></tr><tr id="template"><td id="OrderID"></td><td id="CustomerID"></td><td id="EmployeeID"></td><td id="OrderDate"></td><td id="ShippedDate"></td><td id="ShippedName"></td><td id="ShippedAddress"></td><td id="ShippedCity"></td><td id="more"></td></tr></table>一定要注意的就是里面所有的id属性,这个是一个关键。
AJAX异步请求
AJAX异步请求同步请求和异步请求同步请求:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待,卡死状态.异步请求:客户端发送请求到服务器端,⽆论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死.AJAX的原理:页⾯发送请求,会将请求发送给浏览器内核中的AJAX引擎,ajax引擎会提交请求到客户端,在这段时间⾥,客户端可以任意操作,知道将数据返回给Ajax引擎后,会触发你设置的事件,从⽽执⾏⾃定义的js逻辑代码完成某种页⾯功能.AJAX的使⽤:基本步骤: 1.获得ajax请求 2.设置回调函数 3.确定请求路径 4.发送请求原⽣态JavaScript实现AJAX程序<script type="text/javascript">function func(){//创建ajax引擎对象var xmlhttp = new XMLHttpRequest()://ajax引擎对象绑定事件,监听服务器响应数据xmlhttp.onreadystatechange=function(){if(xmlhttp.readState == 4 && xmlhttp.status ==200){alert(xmlhttp.responseText);}}}xmlhttp.open("GET","/WEB/ajaxJS",true);xmlhttp.send();</script>$.get()函数是实现AJAX(带⽅法签名)1.参数url:请求的服务器地址2.参数data:提交的参数3.参数fn:服务器响应成功的回调函数4.参数dataType:服务器响应的数据格式(text或者json)注意使⽤格式:⽅法签名使⽤,必须以{} 形式包裹<script type="text/javascript">function ajaxGet(){$.get({//提交服务器的地址url:"/WEB/jqueryAjax",// 提交服务器的参数data:"name=zhangsan&age=20",// 相应成功后的回调函数,data是服务器响应的数据success:function(data){alert(data)},// 服务器响应的数据格式dataType:"text"});}</script>$.post()函数实现AJAX(带⽅法签名)get和post函数的写法⼀致,区别在于get提交参数在请求⾏,⽽post提交参数在请求体.<script type="text/javascript">function ajaxPost(){$.post({//提交服务器的地址url:"/WEB/jqueryAjax",// 提交服务器的参数data:"name=zhangsan&age=20",// 相应成功后的回调函数,data是服务器响应的数据success:function(data){alert(data)},// 服务器响应的数据格式dataType:"text"});}</script>$.get()函数实现AJAX(不带⽅法签名)注意格式:不带⽅法签名,去掉{},不在需要写⽅法签名,例如url:data:等,但是注意参数的顺序不能出现错误,参数的书序必须是:url>data>success>dataType,$.post和get⽤法⼀致,不在重复.<script type="text/javascript">function func(){$.get(//提交到服务器地址"/WEB11/jqueryAjax",//要提交到服务器的数据"username=zhangsan&age=18",//相应成功后的回调函数,data是服务器响应的数据function(data){alert(data);},//服务器响应的数据格式"text");}</script>$.post()函数实现AJAX(不带⽅法签名的)和$.get出⼊不⼤<script type="text/javascript">function func(){$.post(//提交到服务器地址"/WEB11/jqueryAjax",//要提交到服务器的数据"username=zhangsan&age=18",//相应成功后的回调函数,data是服务器响应的数据function(data){alert(data);},//服务器响应的数据格式"text");}</script>$.ajax()函数实现AJAX$.ajax⽅法是get和post的底层实现⽅法,该⽅法使⽤更加灵活,参数更加丰富,并可以设置异步或者同步,上层⽅法简单易⽤,代码量较少,底层⽅法灵活性更强,⽅法签名更多,代码量⽐较多.<script type="text/javascript">$.ajax({async:true, //同步或者异步data:"name=zhangsan&age=22",//请求参数dataType:"text",//返回的数据格式error:function(){//请求失败alert("error");},success:function(data){//响应成功,返回的数据alert(data);},type:"GET",url:"/WEB11/jqueryAjax"});</script>JSON数据格式JSON(javascript Object Notation)是⼀种轻量级的数据交换格式.JSON采⽤完全独⽴于语⾔的⽂本格式,就是说不⽤的编程语⾔JSON数据是⼀致的.JS原⽣⽀持JSON.JSON的两种数据格式 数组格式:[obj,obj,obj...] 对象格式:{"key1" : obj ,"key2" : obj,"key3" : obj....} 两种格式可以进⾏任意的嵌套.案例⼀:<script type="text/javascript">/*** 案例⼀* {key:value,key:value}** class Person{* String firstname = "张";* String lastname = "三丰";* Integer age = 100;* }** Person p = new Person();* System.out.println(p.firstname);*/var json = {"firstname":"张","lastname":"三丰","age":100};alert(json.firstname+":::"+json.age);</script>案例⼆<script type="text/javascript">/*** 案例⼆* [{key:value,key:value},{key:value,key:value}]*/var json = [{"lastname":"张","firstname":"三丰","age":100},{"lastname":"张","firstname":"⽆忌","age":99},{"lastname":"张","firstname":"翠⼭","age":98}];for(var i=0;i<json.length;i++){alert(json[i].firstname+":::"+json[i].age);}alert(json[1].age);</script>案例三<script type="text/javascript">/*** 案例三* {* "param":[{key:value,key:value},{key:value,key:value}]* }*/var json = {"baobao":[{"name":"zhangsan",age:15},{"name":"lisi",age:20}]};for(var i = 0 ; i <json.baobao.length;i++){alert(json.baobao[i].name+"...."+json.baobao[i].age);}</script>案例四<script type="text/javascript">/*** 案例四* {* "param1":[{key:value,key:value},{key:value,key:value}],* "param2":[{key:value,key:value},{key:value,key:value}],* "param3":[{key:value,key:value},{key:value,key:value}]* }*/var json = {"baobao":[{"name":"zhangsan","age":20},{"name":"lisi","age":25}],"haohao":[{"name":"wangwu","age":30},{"name":"zhaoliu","age":10}]};alert(json.haohao[0].name);</script>AJAX的JSON数据使⽤客户端向服务器发送请求,服务器响应的数据必须是json格式.<script type="text/javascript">function func(){$.post("/WEB11/ajaxJson",function(data){alert(+"..."+data.age);},"json");}</script>Java数据转成json格式数据json的转换插件是通过java的⼀些⼯具,直接将java对象或者集合转换成为json字符串,常⽤的json转换⼯具有如下⼏种: 1.jsonlib 2.Gson:googlepublic void doGet(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException {User user = new User();user.setId(100);user.setUsername("tom");user.setPassword("123");User user2 = new User();user2.setId(200);user2.setUsername("jerry");user2.setPassword("456");List<User> list = new ArrayList<User>();list.add(user);list.add(user2);// String json = JSONObject.fromObject(user).toString();String json = JSONArray.fromObject(list).toString();Gson gson = new Gson();json = gson.toJson(list);response.getWriter().write(json);}案例⽤户名的异步校验实现思路为:1.<input name="username"> 失去焦点时,使⽤$.post() 将⽤户名username以ajax⽅式发送给服务器2. 服务器获得⽤户名,并通过⽤户名查询⽤户 1. 如果⽤户名存在,返回不可⽤提⽰ 2. 如果⽤户名可⽤,返回可⽤提⽰3. 根据服务器响应的json数据,控制提⽰信息的显⽰和提交的按钮是否可⽤。
jQuery的Ajax实现异步传输List、Map
jQuery的Ajax实现异步传输List、Map由于项目需要通过ajax得到后台的List对象里面的值,由于没有接触过json所以前期我只能先传字符串再在js里截取子串实现。
闲暇时间摸索了一下关于json接受List对象的方法,步骤如下:1.首先下载json所以依赖的包, Json-lib 最新版 json-lib-2.3-jdk15.jar,其官方网站是:/可以直接download,细心的你会发现其网站页面里面有提示它还需要其他包:Json-lib requires (at least) the following dependencies in your classpath: jakarta commons-lang 2.4jakarta commons-beanutils 1.7.0jakarta commons-collections 3.2jakarta commons-logging 1.1.1ezmorph 1.0.6其中一般项目中都会有前4个,所以只需要下载ezmorph 1.0.6 就可以了下载地址分别是:/lang//beanutils//collections//logging//2.首先先见一个小web项目先建一个User类:package com.json;public class User {String username;String password;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}再建一个servletpackage com.json;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONArray;public class TestJson extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");String str= request.getParameter("name");//得到ajax传递过来的paramaterSystem.out.print(str);PrintWriter out = response.getWriter();List list = new ArrayList();//传递ListMap m=new HashMap();//传递MapUser u1=new User();u1.setUsername("zah");u1.setPassword("123");User u2=new User();u2.setUsername("ztf");u2.setPassword("456");list.add(u1); //添加User对象list.add(u2); //添加User对象m.put("u1", u1);m.put("u2", u2);JSONArray jsonArray2 = JSONArray.fromObject( list );//转化成json 对象JSONObject jo=JSONObject.fromObject(m);//转化Map对象out.print(jsonArray2);//返给ajax请求out.print(jo);//返给ajax请求}}配置好web.xml中的servlet映射,这一步就略了。
基于AJAX的异步Web开发模式
基于AJAX的异步Web开发模式作者:赵定远来源:《现代电子技术》2008年第10期摘要:随着Web应用开发的不断深入和普及,基于互联网的应用程序越来越多,现有网络应用程序中的请求-处理-等待模式越来越不适应用户需求,页面重载成为Web开发应用中最大的可用性障碍。
AJAX设计模式的出现,实现了平滑滚屏互联网应用。
在这种模式下,各种Web应用程序互相配合,能使网站无缝运作。
提出利用AJAX异步机制实现Web应用程序开发,Web页面不用打断交互流程进行重新加载就可以动态更新。
使用AJAX,可以创建接近本地桌面应用的、直接的、高可用的、更丰富的、动态的Web用户接口界面,极大地改善了Web应用的可用性和用户的交互体验。
关键词:AJAX;JavaScript;XMLHttpRequest;DOM;中图分类号:TP393 文献标识码:B文章编号:1004-373X(2008)10-079-Abstract:Along with the depth and popularization of Web application development,more and more applications based on internet appeared.But request-process-wait mode in current Web application is unbearable to customers.Page reloading becomes the handicap to usability.Now the appearance of AJAX design mode brings many new function-smooth screen scrolling in Web application.By using this design mode,different Web application cooperate with each other,making webs running flawless,like computer program running in personal computer.This article is mainly about development web application based on AJAX asynchronous mode.By using AJAX,pages can be reloaded to update dynamically without interruption,also can createimmediate,useful,abundant,dynamic Web UI,it greatly improves availability of Web and interactiveKeywords:AJAX;JavaScript;XMLHttpRequest;DOM;1 引言AJAX是异步JavaScript和XML单词的缩写为Asynchronous JavaScript and XML。
基于jQuery的AJAX和JSON的实例
基于jQuery的AJAX和JSON的实例通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示。
我们先来看一下html模板:<table id="datas" border="1" cellspacing="0" style="border-collapse: collapse"><tr><th>订单ID</th><th>客户ID</th><th>雇员ID</th><th>订购日期</th><th>发货日期</th><th>货主名称</th><th>货主地址</th><th>货主城市</th><th>更多信息</th></tr><tr id="template"><td id="OrderID"></td><td id="CustomerID"></td><td id="EmployeeID"></td><td id="OrderDate"></td><td id="ShippedDate"></td><td id="ShippedName"></td><td id="ShippedAddress"></td><td id="ShippedCity"></td><td id="more"></td></tr></table>一定要注意的就是里面所有的id属性,这个是一个关键。
jqueryajax属性async(同步异步)示例
jqueryajax属性async(同步异步)⽰例在jquery的ajax中如果我们希望实现同步或者异步我们可以直接设置async发⽣为真或假即可true false,下⾯举⼏个jquery ajax同步和异步实例例1、jquery+ajax/" target="_blank">jquery ajax同步⽅式$.ajax({url : 'test.php',type : 'post',async: false,//使⽤同步的⽅式,true为异步⽅式data : {'act':'addvideo', 'videoname':videoname},//这⾥使⽤json对象success : function(data){//code here...},fail:function(){//code here...}});View Code例2 代码如下//javascriptfunction test(){var a= 1;$.ajax({type : 'GET',url : 'test.php',data : 'page=112',success:function(msg){alert(msg);a= msg;}})alert(a);}//test.phpsleef('5'); //休息五分钟echo 'in';/*这个程序运⾏情况是先打印1(a=1) 然后五秒过后打印 in根据这个情况就可以知道 jquery 的ajax的执⾏流程因为是异步调⽤以前就是这样给⼀个变量赋值不管怎么弄都是不对的。
最后就发现这个问题参数async改为false就为同步调⽤当ajax返回结果后程序才继续执⾏*/View Code在这⾥,async默认的设置值为true,这种情况为异步⽅式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续执⾏ajax块后⾯的脚本,直到server端返回正确的结果才会去执⾏success,也就是说这时候执⾏的是两个线程,ajax块发出请求后⼀个线程和ajax块后⾯的脚本(另⼀个线程)例3$.ajax({type:"POST",url:"Venue.aspx?act=init",dataType:"html",success:function(result){ //function1()f1();f2();}failure:function (result) {alert('Failed');},}function2();View Code在上例中,当ajax块发出请求后,他将停留function1(),等待server端的返回,但同时(在这个等待过程中),前台会去执⾏function2(),也就是说,在这个时候出现两个线程,我们这⾥暂且说为function1() 和function2()。
JQuery中Ajax的操作完整例子
JQuery中Ajax的操作完整例⼦Java软件开发中,后台中我们可以通过各种框架,像SSH等进⾏对代码的封装,⽅便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进⾏封装控制,使我们只需要进⾏⼀些简单配置就可以实现;⽽spring进⾏了对各种对象的管理进⾏封装,提供了AOP编程的⽅式,⼤⼤⽅便了我们;⽽hibernate和IBatis则是对JDBC代码进⾏封装,不需要我们每次都写那些重复⽽繁杂的JDBC代码。
前台呢,对于页⾯⼀些效果,验证等,我们都是通过JavaScript语⾔进⾏完成的,但是它也就像我们的Java代码⼀样,是最前台语⾔最基础的,⽽jQuery则是对js代码进⾏封装⽅便我们前台代码的编写,⽽且它还有⼀个⾮常⼤的优势就是解决了浏览器的兼容问题,这也是我们使⽤它⾮常重要的原因之⼀。
⽽现在为了满⾜⽤户的需求,Ajax(Asynchronous Javascript + XML)异步刷新起到了⽆可⽐拟的作⽤,以前写Ajax操作,总是需要我们想JDBC代码⼀样进⾏⼏个必备的步骤:AJAX——核⼼XMLHttpRequest对象,⽽JQuery也对Ajax异步操作进⾏了封装,这⾥看⼀下⼏种常⽤的⽅式。
$.ajax,$.post, $.get, $.getJSON。
⼀, $.ajax,这个是JQuery对ajax封装的最基础步,通过使⽤这个函数可以完成异步通讯的所有功能。
也就是说什么情况下我们都可以通过此⽅法进⾏异步刷新的操作。
但是它的参数较多,有的时候可能会⿇烦⼀些。
看⼀下常⽤的参数:var configObj = {method //数据的提交⽅式:get和posturl //数据的提交路劲async //是否⽀持异步刷新,默认是truedata //需要提交的数据dataType //服务器返回数据的类型,例如xml,String,Json等success //请求成功后的回调函数error //请求失败后的回调函数}$.ajax(configObj);//通过$.ajax函数进⾏调⽤。
Vue--axios:vue中的ajax异步请求(发送和请求数据)、vue-resourc。。。
Vue--axios:vue中的ajax异步请求(发送和请求数据)、vue-resourc。
跨域原理:⼀.使⽤axios发送get请求1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <meta name="viewport" content="width=device-width, initial-scale=1.0">6 <meta http-equiv="X-UA-Compatible" content="ie=edge">7 <title>Document</title>8 <script src="../vue2.4.4.js"></script>9 <script src="../axios.js"></script>1011 </head>1213 <body>14 <!-- 定义⼀个vue的管理区块,(MVVM中的View) -->15 <div id="app">16 <button @click="getApiData">点击得到数据</button>17 {{name}}18 </div>1920 </body>2122 <script>2324// 实例化vue对象(MVVM中的View Model)25new Vue({26// vm控制的区块为id为app的div,此div中的所有vue指令均可以被vm解析27 el:'#app',28 data:{29// 数据(MVVM中的Model)30 name:""31 },32 methods:{33 getApiData:function() {34//设置请求路径35var url = "http://157.122.54.189:9093/api/getprodlist";36// 发送请求:将数据返回到⼀个回到函数中37 _this= this;38// 并且响应成功以后会执⾏then⽅法中的回调函数39 axios.get(url).then(function(result) {40// result是所有的返回回来的数据41// 包括了响应报⽂⾏42// 响应报⽂头43// 响应报⽂体44 console.log(result.data.message[0]);45 _ = result.data.message[0].name;46 });47 }48 }49 })50 </script>51 </html>⼆.使⽤axios发送post请求1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <meta name="viewport" content="width=device-width, initial-scale=1.0">6 <meta http-equiv="X-UA-Compatible" content="ie=edge">7 <title>Document</title>8 <script src="../vue2.4.4.js"></script>9 <script src="../axios.js"></script>1011 </head>1213 <body>14 <!-- 定义⼀个vue的管理区块,(MVVM中的View) -->15 <div id="app">16 <button @click="postApiData">点击提交数据</button>17 </div>1819 </body>2021 <script>2223// 实例化vue对象(MVVM中的View Model)24new Vue({25// vm控制的区块为id为app的div,此div中的所有vue指令均可以被vm解析26 el:'#app',27 data:{28// 数据(MVVM中的Model)29 },30 methods:{31 postApiData:function() {32var url = "http://157.122.54.189:9093/api/addproduct";33// post有两个参数34//参数1:请求的路径35//参数2:提交的参数36//提交参数的两种形态:37// 1.可以直接传⼊字符串 name=张三&age=1938// 2.可以以对象的形式传⼊{name:"三",age:19}39 axios.post(url,{name:"拖油瓶前来报道"}).then(function(res) {40var resData = res.data;41if(resData.status == "0") { //0表⽰成功,1表⽰失败42 alert(resData.message);43 }else{44 alert(resData.message);45 }46 });4748 }49 }50 })51 </script>52 </html>三.使⽤axios发送post或get请求细节处理1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <meta name="viewport" content="width=device-width, initial-scale=1.0">6 <meta http-equiv="X-UA-Compatible" content="ie=edge">7 <title>Document</title>8 <script src="../vue2.4.4.js"></script>9 <script src="../axios.js"></script>1011 </head>1213 <body>14 <!-- 定义⼀个vue的管理区块,(MVVM中的View) -->15 <div id="app">16 <button @click="getApiData">点击得到数据</button>17 <button @click="postApiData">点击提交数据</button>18 {{name}}1920 </div>2122 </body>2324 <script>25//细节处理⼀:可以给axios的ajax请求设置统⼀的主机和端⼝号26 axios.defaults.baseURL = "http://157.122.54.189:9093/";27//细节处理⼆: 可以将axios这个对象添加到Vue的原型对象中,将来在使⽤的时候就只需要使⽤this.对象名就可以了28 Vue.prototype.$http = axios;293031// 实例化vue对象(MVVM中的View Model)32new Vue({33// vm控制的区块为id为app的div,此div中的所有vue指令均可以被vm解析34 el:'#app',35 data:{36// 数据(MVVM中的Model)37 name:""38 },39 methods:{40 getApiData:function() {41//设置请求路径42var url = "api/getprodlist";43// 发送请求:将数据返回到⼀个回到函数中44 _this= this;45// 并且响应成功以后会执⾏then⽅法中的回调函数46this.$http.get(url).then(function(result) {47// result是所有的返回回来的数据48// 包括了响应报⽂⾏49// 响应报⽂头50// 响应报⽂体51 _ = result.data.message[0].name;52 }).catch(function(){53 alert("出错了");54 });55 },5657 postApiData:function() {58var url = "api/addproduct";59// post有两个参数60//参数1:请求的路径61//参数2:提交的参数62//提交参数的两种形态:63// 1.可以直接传⼊字符串 name=张三&age=1964// 2.可以以对象的形式传⼊{name:"三",age:19}65this.$http.post(url,{name:"拖油瓶前来报道3 "}).then(function(res) { 66var resData = res.data;67if(resData.status == "0") { //0表⽰成功,1表⽰失败68 alert(resData.message);69 }else{70 alert(resData.message);71 }72 }).catch(function(){73 alert("出错了");74 }); ;7576 }77 }78 })79 </script>80 </html>四.使⽤axios完成品牌管理1 <!DOCTYPE html>2 <html lang="en">34 <head>5 <meta charset="UTF-8">6 <meta name="viewport" content="width=device-width, initial-scale=1.0">7 <meta http-equiv="X-UA-Compatible" content="ie=edge">8 <title>Document</title>9 <style>10 #app {11 width: 600px;12 margin: 10px auto;13 }1415 .tb {16 border-collapse: collapse;17 width: 100%;18 }1920 .tb th {21 background-color: #0094ff;22 color: white;23 }2425 .tb td,26 .tb th {27 padding: 5px;28 border: 1px solid black;29 text-align: center;30 }3132 .add {33 padding: 5px;34 border: 1px solid black;35 margin-bottom: 10px;36 }37 </style>38 <script src="../vue2.4.4.js"></script>39 <script src="../axios.js"></script>40 </head>4142 <body>43 <div id="app">44 <div class="add">45品牌名称: <input v-model="name" type="text">46 <button @click="add">添加</button>47 </div>48 <div class="add">品牌名称:<input type="text"></div>49 <div>50 <table class="tb">51 <tr>52 <th>编号</th>53 <th>品牌名称</th>54 <th>创⽴时间</th>55 <th>操作</th>56 </tr>57 <tr v-if="list.length <= 0">58 <td colspan="4">没有品牌数据</td>59 </tr>60 <!--加⼊: key="index" 时候必须把所有参数写完整 -->61 <tr v-for="(item,key,index) in list" :key="index">62 <td>{{item.id}}</td>63 <td>{{}}</td>64 <td>{{item.ctime}}</td>65 <td><a href="#" @click="del(item.id)">删除</a></td>66 </tr>67 </table>68 </div>6970 </div>71 </body>7273 </html>7475 <script>76// 1 将所有的主机名和端⼝⼀起设置77 axios.defaults.baseURL = "http://157.122.54.189:9093";78// 2 将axios添加到Vue的原型对象中79 Vue.prototype.$http = axios;8081var vm = new Vue({82 el: "#app",83 data: {84 name: '',85 list: [] // 数据应该来源于服务器提供的api86 },87 mounted:function() { //钩⼦函数88this.getList();89 },90 methods: {91// 得到所有的列表数据,这个⽅法应该等页⾯加载完成以后直接被调⽤的92 getList:function() {93var url = "/api/getprodlist";94// 改变this的指向95 _this = this;96this.$http.get(url).then(function(result){97var res = result.data;98if(res.status == 0) {99//将数据赋值给list100 _this.list = res.message;101 }else{102 alert("出错了");103 }104 }).catch(function(){105 alert("出错了");106 });107 },108// 得到⽂本框中的值,并且将值通过api提交到服务器109 add:function() {110var url = "/api/addproduct";111 _this = this;112// 得到name属性对应的值113this.$http.post(url,{"name":}).then(function(result){114var res = result.data;115if(res.status == "0") {116 alert(res.message);117 _this.getList();118 }else{119 alert(res.message);120 }121 }).catch(function() {122 alert("出错了");123 });124 },125 del:function(id){126//格局id删除数据127var url = "/api/delproduct/"+id;128// 发送异步请求129 _this = this;130this.$http.get(url).then(function(result){131var res = result.data;132if(res.status == "0") {133 alert(res.message);134//更新数据135 _this.getList();136 }else{137 alert(res.message);138 }139140 }).catch(function(){141 alert("出错了");142 });143 }144 }145 });146147 </script>五.使⽤vue-resource发送异步请求(包含get和post请求)两个js⽂件⼀定要按照顺序加载1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <meta name="viewport" content="width=device-width, initial-scale=1.0">6 <meta http-equiv="X-UA-Compatible" content="ie=edge">7 <title>Document</title>8 <script src="../vue2.4.4.js"></script>9 <script src="../vue-resource.js"></script>1011 </head>1213 <body>14 <!-- 定义⼀个vue的管理区块,(MVVM中的View) -->15 <div id="app">16 {{name}}17 </div>1819 </body>2021 <script>2223// 实例化vue对象(MVVM中的View Model)24new Vue({25// vm控制的区块为id为app的div,此div中的所有vue指令均可以被vm解析26 el:'#app',27 data:{28// 数据(MVVM中的Model)29 name:""30 },31 methods:{3233 },34 created:function() {35// 发送请求到服务器加载数据36//vue-resource发送get请求37/* this.$http.get("http://157.122.54.189:9093/api/getprodlist").then(function(result){38 //得到响应的内容39 var res = result.body;40 = res.message[0].name;41 });42*/43//vue-resource发送post请求44this.$http.post("http://157.122.54.189:9093/api/addproduct",{"name":"⼩明"}).then(function(result){ 45var res = result.body;46 alert(res.message);47 });48 }49 })50 </script>51 </html>六.使⽤vue-resource来实现跨域1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <meta name="viewport" content="width=device-width, initial-scale=1.0">6 <meta http-equiv="X-UA-Compatible" content="ie=edge">7 <title>Document</title>89 <script src="../vue2.4.4.js"></script>10 <script src="../vue-resource.js"></script>11 </head>1213 <body>14 <!-- 定义⼀个vue的管理区块,(MVVM中的View) -->15 <div id="app">1617 </div>1819 </body>2021 <script>2223// 实例化vue对象(MVVM中的View Model)24new Vue({25// vm控制的区块为id为app的div,此div中的所有vue指令均可以被vm解析26 el:'#app',27 data:{28// 数据(MVVM中的Model)29 },30 mounted:function() {31var url = "http://157.122.54.189:9093/jsonp";32//在vue-resources中会⾃动在路径上加⼊callback的函数名,得到的结果就是result33this.$http.jsonp(url).then(function(result){34var res = JSON.parse(JSON.parse(result.body));35 console.log(res.message);36 });37 }38 })39 </script>40 </html>。
阿贾克斯(Ajax)异步请求数据
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
阿贾斯( Ajax)异步请求数据
js文件中: 1.接受数据,分割拼接处理 2.var xhr = XMLHTTPRequest() 3.判断请求类型,get or post;get 的url里有参数,post里边没有(不能被用户直接看到);里边都要写xhr.open();xhr.send(),post请求的话 还要写xhr.setRequestHeader(). 4.判断readystate变化到4,说明请求数据结束;判断成功传回的话(200),输出//这里检测readystate就是异步的思想。 手写贴图:
vue怎么使用ajax的流程
Vue怎么使用Ajax的流程介绍在Vue.js中使用Ajax来进行数据的异步请求是非常常见的操作。
本文将介绍在Vue中使用Ajax的流程,包括安装依赖、创建Vue实例、发送Ajax请求、处理返回数据等。
步骤1. 安装依赖首先,在使用Ajax之前,我们需要安装相应的依赖。
在Vue.js中,我们常用的Ajax库是axios。
可以使用npm来安装axios,具体命令如下:npm install axios安装完成后,在项目的入口文件中引入axios:import axios from 'axios'2. 创建Vue实例在创建Vue实例之前,我们需要在HTML文件中引入Vue.js和我们的项目文件。
然后,我们可以创建一个Vue实例,并在其中设置数据和方法,以及将数据绑定到HTML中。
new Vue({el:'#app',data:{// 数据},methods:{// 方法}})3. 发送Ajax请求在Vue中发送Ajax请求非常简单。
我们可以在methods中定义一个方法,然后使用axios来发送请求。
例如,我们可以发送一个GET请求来获取数据:new Vue({el:'#app',data:{users: []},methods:{getUsers() {axios.get('/api/users').then(response =>{ers=response.data}).catch(error =>{console.error(error)})}}})在上面的例子中,我们发送一个GET请求到/api/users路由,并将返回的数据赋值给ers。
如果请求成功,我们可以在.then回调函数中处理返回的数据;如果请求失败,我们可以在.catch回调函数中处理错误。
4. 处理返回数据在上一步中,我们通过.then回调函数来处理返回的数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ajax异步
firstPage.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'firstPage.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<br> AjAX异步第一页<br>
<input type="button" value="提交" onclick="test()">
<script type="text/javascript" src="jquery-1.4.4.min.js"></script><!--jquery-1.4.4.min.js放在了WebRoot根目录下-->
<script type="text/javascript">
function test() {
$.ajax({
cache : true,
type : "POST",
url : 'hello_hello.action',<!--要调用的后台处理-->
data : [],<!--用于传递参数,例如:data : {'username':name,'userpath':'bbb'},-->
async : false,
error : function(request) {
alert("Ajax异步失败");
},
success : function(data) {
alert("Ajax异步成功");<!--处理成功则提示-->
}
});
/* location.href='hello.action'; */
}
</script>
<!-- <script type="text/javascript" src="hello.js"></script> -->
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"/dtds/struts-2.0.dtd">
<struts>
<!-- 配置为开发模式-->
<constant name="struts.devMode" value="true" />
<!-- 把扩展名配置为action -->
<constant name="struts.action.extension" value="action" />
<package name="default" namespace="/" extends="struts-default">
<action name="hello_*" class="cn.qlj.action.FirstAction" method="{1}">
</action>
</package>
<!-- Add packages here -->
</struts>
FirstAction.java
package cn.qlj.action;
import com.opensymphony.xwork2.ActionSupport;
public class FirstAction extends ActionSupport {
public String hello() {
System.out.println("hello,Ajax");
return null;
}
public String error() {
System.out.println("error,Ajax");
return null;
}
}。