ajax实例(.net)

掌握.NET(C#)中的Ajax与JSON应用实例 本文还有配套的精品资源,点击获取 简介:在.NET框架中,C#作为主要编程语言,可以利用Ajax技术实现页面的异步数据更新,从而提升用户体验。JSON作为一种轻量级的数据交换格式,常用于服务器与客户端之间的数据传输。本文将深入探讨如何在.NET(C#)环境中,通过Ajax和JSON技术实现Web应用的前后端交互。介绍了Ajax的工作原理、JSON的特点,以及C#如何利用**... 阅读详情
 

5.2 Ajax基础http://book.youkuaiyun.com/bookfiles/653/10065320712.shtml

在 进行Ajax开发以前,我们必须先对一些基本的知识进行了解。虽然Ajax.NET已经将Ajax实现细节封装起来,并大大简化了我们的操作,但是了解基 本的Ajax实现方式对于帮助我们在开发中能更好理解和实施,以及更有效地优化和排错是至关重要的。此外,虽然我们不必编写具体的Ajax调用代理,但是 在调用代理前获取数据,以及返回数据后怎样使数据能够正确显示,这两部分工作都需要我们具有基本的JavaScript操作DOM模型的能力。接下来我们 将来对这几方面的知识进行讨论。

5.2.1 XMLHttpRequest对象

对 于Ajax技术的基础和核心,XMLHttpRequest对象应该是我们必须要了解的一个对象,Ajax实现的关键发送异步请求并接收响应执行回调都是 通过它来完成的。XMLHttpRequest最早是在Microsoft Internet Explorer 5.0以ActiveX组件中被引入的,之后各大浏览器厂商都以JavaScript内置对象的方式实现了XMLHttpRequest对象。虽然大家对 它的实现方式有所区别,但是绝大多数浏览器都提供了类似的属性和方法,在实际脚本编写方法上区别不大,并且实现得到的效果也基本相同,目前W3C正致力于 将XMLHttpRequest对象制定一个统一的标准使各个浏览器厂商遵照执行,以利于Ajax技术的推广与发展。

XMLHttpRequest提供了一个相对精简易用的API,下面我们就将简单地介绍一下它所提供的属性和方法以及怎么利用这些属性和方法完成一次Ajax的请求和响应处理。

1.readyState属性

当一个XMLHttpRequest对象被创建后,此属性标识了此对象正处于什么状态,我们可以通过对此属性的访问,来判断此次请求的状态是什么然后做出相应的操作。具体此属性的值代表的意义见表5-1。

表5-1

值

说    明

0

未初始化状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化此对象的属性

1

准备发送状态;此时,已经调用了XMLHttpRequest对象的Open()方法,并且已经准备好将一个XMLHttpRequest请求发送到服务端

2

已发送状态;此时,已经调用了XMLHttpRequest对象的Send()方法,但是并没有收到任何响应

3

正在接收状态;此时,已经开始接收HttpResponse响应信息但是还没有完成接收

4

完成响应状态;此时,已经完成了HttpResponse响应的接收

2.responseText属性

此属性描述的是一个HttpResponse中的全部文本内容,通过访问它,可以得到一次XMLHttpRequest得到响应回传的全部文本内容。只有当ReadyState的值为3或4时此属性才会有部分或者全部值,否则此属性只会是空字串。

3.responseXML属性

只有当 ReadyState属性为4,并且响应头部的Content-Type的MIME类型被指定为XML(text/xml或者 application/xml)时,此属性才会有值并且被解析为一个XML文档,否则此属性为Null。若是回传的XML文档结构不良或未完成响应回 传,此属性也会为Null,由此可见,此属性用来描述被XMLHttpRequest解析后的XML文档的属性。

4.status属性

用于描述服务器Http请求的状态值,通过此属性值我们可以判断服务器的响应状态,如我们通常通过判断status==200来判断服务器是否正常返回。但是注意,必须是日readyState为3或4时才能对此属性进行访问。

5.status属性

用于描述服务器Http请求的状态文本,通过此属性我们可以得到服务器响应的状态的描述文本,与status属性同样,必须在readyState为3或4时才能对此属性进行访问。

6.onreadystatechange事件

每当readyState发生改变时触发此事件,我们一般都通过此事件来触发回传处理函数。

7.open()方法

XMLHttpRequest 对象是通过open(method,uri,async,username,password)的方法来进行初始化工作的,通过调用此方法将得到一个可以 用来进行发送(send()方法)的对象。其中method参数是用来指定发送请求的HttpRequest类型,其值类型为字串,值可以为get、 post、put、delete等;uri参数是用来指定请求被发送到的服务器地址,该地址会被自动解析为绝对地址,所以在这里可以用相对地址来表示; async是一个类型为boolean类型的参数,默认情况下为true,此时表示为异步提交,如果希望发送一个同步请求可以将此值设为false;在服 务器需要验证访问用户的情况,我们可以设置username以及password两个参数。

当open()方法被调用时,XMLHttpRequest对象将会把readyState属性设为1,且初始化其他属性,如果此时一个请求正在被发送或者响应正在被接收,则前一请求的数据和内容将会丢失,请求将会被取消。

8.send()方法

当调用 open()方法后,我们就可以通过调用send()方法按照open()方法设定的参数将请求进行发送。当open()方法中async参数为true 时,在send()方法调用后立即return,否则将会中断直到请求返回。需要注意的是,send()方法必须在readyState为1时,即调用 open()方法以后调用。在调用send()方法以后到接收到响应头之前,readyState的值将被设为2,一旦开始接收到响应消息, readyState将会被设为3,直到响应接收完成,readyState的值才会被设为4。

9.abort()方法

该方法可以暂停一个HttpRequest的请求发送或是HttpResponse的接收,并且将XMLHttpRequest对象设置为初始化状态。

10.setRequestHeader()方法

该方法用于在调用open()方法后,设置HttpRequest头的信息,setRequestHeader(header,value)方法包含两个参数,前一个是header键名称,后一个是其值。

11.getResponseHeader()方法

此方法在readyState为3或4时,用于获取HttpResponse的头部信息,此外我们还可以通过getAllResponseHeaders()获取所有的HttpResponse的头部信息。

在搞清楚了XMLHttpRequest的这些基本属性方法以后,我们就可以开始编写我们的第一个Ajax程序了。我们准备通过点击一个按钮然后通过Ajax的方式到服务端取回一个Hello world!的字符串显示在界面的一个文本框里。

我们在一个配置好的站点工程里面新建一个名为AjaxTest.aspx页面。首先我们在cs文件中的page_load事件函数中写下如下代码:

AjaxTest.aspx.cs:

    protected void Page_Load(object sender, EventArgs e)

    {

        if (Request.QueryString["s"] == "1")//使用查询字串来指示这个请求是通过Ajax发出的

        {

            Response.Write("hello world!");//向HttpResponse中输出hello world!

            Response.End();//将页面缓冲发送向客户端浏览器 并中止该页输出

                           //如果去掉这句 会得到多余的HTML代码

        }

    }

相对来说,我们在前台页面中书写的代码将会多一些,慢慢地你会发现这也许是Ajax的一个惯例:

AjaxTest.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxTest.aspx.cs" Inherits= "AjaxTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title>测试</title>

    <script language="javascript" type="text/javascript">

    <!--

    function GetInfo(){//我们就是通过这个函数来异步获取信息的

        var xmlHttpReq = null;//声明一个空对象用来装入XMLHttpRequest

        if (window.XMLHttpRequest){//除IE5 IE6 以外的浏览器XMLHttpRequest是window的子对象

            xmlHttpReq = new XMLHttpRequest();//我们通常采用这种方式实例化一个XMLHttpRequest

        }

        else if (window.ActiveXObject){//IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest的

            xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

                                            //IE5 IE6是通过这种方式

        }

        if(xmlHttpReq != null){//如果对象实例化成功 我们就可以干活啦

            xmlHttpReq.open("get","AjaxTest.aspx?s=1",true);

                                           //调用open()方法并采用异步方式

            xmlHttpReq.onreadystatechange=RequestCallBack; //设置回调函数

            xmlHttpReq.send(null);//因为使用get方式提交,所以可以使用null参调用

        }

        function RequestCallBack(){//一旦readyState值改变,将会调用这个函数

            if(xmlHttpReq.readyState == 4)

            {

                document.getElementById("iptText").value = xmlHttpReq.responseText;

                //将xmlHttpReq.responseText的值赋给iptText控件

            }

        }

    }

    -->

    </script>

</head>

<body>

    <form id="form1" runat="server">

        <div>

            <input id="iptText" type="text" value="" />

            <input type="button" id="" value="Ajax提交" onclick="GetInfo();" />

            <!--点击这个按钮调用-->

        </div>

    </form>

</body>

</html>

如果你在点击按钮的瞬间发现文本框内闪电般地出现了 “Hello world!”,那么恭喜你,你已经完成了一个Ajax调用。如果你还对前台页面中那些和C#貌似神离的代码觉得不太明白,没关系,接下来我们就将来简单 学习一下Ajax另外一个重要的部分——JavaScript

asp.net+jquery+ajax所有调用例子 asp.net ajax调用aspx、ajax调用ashx处理类方法、ajax调用webservice方法,返回多种数据类型等xml、html等。 立即下载

相关推荐

asp.net ajax一个实例

asp.net ajax一个简单不错的例子。。。。。

ajax入门

 5.2 Ajax基础http://book.csdn.net/bookfiles/653/10065320712.shtml在 进行Ajax开发以前,我们必须先对一些基本的知识进行了解。虽然Ajax.NET已经将Ajax实现细节封装起来,并大大简化了我们的操作,但是了解基 本的Ajax实现方式对于帮助我们在开发中能更好理解和实施,以及更有效地优化和排错是至关重要的。此外,虽然我们不必

526

asp.net+ajax实现无刷新的增删改查

asp.net+ajax实现无刷新的增删改查

ajax.net项目,Ajax.Net快速入门_jquery

现在的项目准备用ajax,用ajax.net实现,而不是atlas,所以先看下ajax.net,Ajax.Net现在的最新版本是AjaxPro5.11.4.2,下载地址是:首先我们新建个项目,名字是AjaxPro,我用的是vs2005beta2版本。右击站点名字点add reference添加对我们刚刚下载来的那个叫AjaxPro.2.dll的引用,如果你用的是vs2003,则添加对AjaxPro...

weixin_30802909的博客 362

asp.net+ajax的Post请求实例

主要介绍了asp.net+ajax的Post请求实现方法,实例分析了Ajax的发送post数据的原理与技巧,具有一定参考借鉴价值,需要的朋友可以参考下

.net的AJAX简单实例 VS2010

.net的AJAX简单实例 环境是 VS2010

net框架下的ajax

Ajax的崛起令微软感到有些尴尬,因为Ajax中的一些关键技术其实是微软在1997年发明的,可是该公司后来把它们搁置了。长期以来,微软一直几乎垄断整个桌面软件市场,但他对互联网软件却重视不够,以致在微软自己的asp.net沃土上培植出了形形色色ajax框架结构。他们中有微软自己的Atlas,Telerik公司的rad ajax,Michael Schwarz的ajax.net,还有最近国人开发的n

EndAll的专栏 1469

FoundationPose 4090部署 真实场景迁移

复现并应用foundationpose

m0_52835296的博客 613

轻松掌握Ajax.net系列教程一:部署AJAX.NET

本系列文章主要介绍Ajax.net的使用方式,重点介绍Ajax.net的工具包Ajax-Toolkit中各种控件的使用方法。这里就不再重复什么是Ajax.net以及它的光辉历史了,我们直接开始。第一步:安装Ajax.net。安装Ajax.net很简单,但安装Ajax.net扩展包之前我们必须确保我们已经正确安装了VS.Net 2005或Visual Web Developer 2005 Expre

脑瓜子的程序人生 939

芯片设计中的复位艺术——从异步复位同步释放到复位树构建

本文深入探讨了芯片设计中复位策略的核心技术与工程实践。重点解析了异步复位同步释放这一黄金方案的原理与优势,它通过复位同步器解决了异步复位释放时的时序风险。文章进一步阐述了如何构建稳健的复位树以应对大规模SoC设计,并分析了多时钟域与低功耗场景下的复位设计挑战,为提升芯片可靠性提供了系统性的方法论。

neovim7hacker的博客 486

手把手教你搞定Pattern Recognition期刊的LaTeX投稿(附完整模板下载与避坑指南)

本文详细指导如何在Pattern Recognition期刊上使用LaTeX进行投稿,包括模板下载、环境配置、核心排版规范及投稿材料准备。特别强调期刊对格式的严格要求,如数学符号、图像引用等细节,并提供实用技巧和避坑指南,帮助作者高效完成投稿流程。

weixin_30876945的博客 394

漫谈Ajax在.Net中的使用

在.Net中的使用 AJAX出来的时间也不短了。虽然它在某些方面很受争议,但是瑕不掩瑜。AJAX不能说它属于哪门语言,而是任何一门语言与JavaScript,XML的交叉。我觉得,说Ajax是任何一门WEB语言与DHTML、XML的交叉这样更加合适。以下只讨论IE部分。Ajax在应用中使用有3个部分(个人观点):1、数据(一般通过IE内置组件Microsoft.XMLHTTP来取得或者发送数据);

飘逸软件技术信息服务网 842

手把手教你解决uniapp中esbuild版本冲突问题(Mac版专属指南)

本文是针对Mac平台uniapp开发者的专属指南,详细解析了运行项目时常见的`Cannot start service`错误,即esbuild的Host版本与binary版本不匹配问题。文章从错误根源入手,提供了从快速应急处理到彻底根治的完整解决方案,包括手动替换二进制文件、锁定依赖版本、清理缓存及优化工具链配置,旨在帮助开发者高效解决版本冲突,恢复并稳定开发环境。

i0j1k2l3m的博客 459

asp.net ajax 参数,ASP.NET jquery ajax传递参数的实例

ASP.NET jquery ajax传递参数的实例发布于 2017-05-01 16:54:25 | 80 次阅读 | 评论: 0 | 来源: 网友投递jQuery javascript框架jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发...

weixin_35725138的博客 487

深入理解DQN中的Q值:核心概念和应用

在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。

qlkaicx的博客 2975

从Excel到‘一张图’办案:手把手教你用AbutionGraph构建公安经侦知识图谱(含数据建模避坑指南)

本文详细介绍了如何利用AbutionGraph时序图数仓技术,将公安经侦领域的Excel、银行流水等碎片化数据转化为可交互的知识图谱。通过数据清洗、实体关系模型设计、时序数据处理等步骤,实现高效智能分析,提升办案效率。特别包含数据建模避坑指南和实战案例,助力公安金融案件侦破。

weixin_33702545的博客 342

asp.net ajax控件实例 和学习

Asp.Net Ajax控件示例    1.SliderExtender 实现滑动轴控件 asp:ScriptManager ID="ScriptManager2" runat="server">     asp:ScriptManager>        div>             br />             asp:TextBox ID="TextBox1

yhh345814509的专栏 3780

金蝶Apusic应用服务器 未授权目录遍历漏洞复现

由于金蝶Apusic应用服务器/admin/protected/selector/server_file/files、/admin/protected/selector/server_file/folders 等接口没有进行校验和过滤,直接将参数拼接到文件操作中,导致出现目录遍历漏洞,未经身份验证的远程攻击者可通过此漏洞读取系统内部系统文件路径及信息,导致信息泄露,系统处于极不安全状态。

0xSec 2169

ajax请求提交数据,.NET的Ajax请求数据提交实例

本文实例讲述了.NET的Ajax请求数据提交实现方法。分享给大家供大家参考。具体如下:" %>ajax请求ajax请求 会员登录没有账号?立即注册用户名或密码错误!自动登录忘记密码?$(function () {$('.userId,.passwordStyle').on('keyup', function (e) {if (e.keyCode == 13) {$(...

weixin_34093995的博客 357

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

简单Asp.net Ajax实例

最最简单的不用任何组件的Asp.net Ajax无刷新实例 asp.net 作者:asp.net 浏览:330次 评论:2条     昨天中午,俺认识一个高手,他的QQ昵称是“Leo”,至于他的QQ号码,未经许可,不便透露。   俺之前很想学习Ajax无刷新技术,但,始终都是望而却步,以为很难!   之前,俺也曾经使用过VS2005自带的一个无刷...

weixin_34150830的博客 196

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Ajax.net的未将对象引用设置到对象的实例

今天想对前几天学习Ajax做一下检验,在刚完成的一个项目了加入Ajax.NET Professional 的引用,[环境]    Ajax.NET Professional for .NET 1.1,版本5.11.4.2    Visual Studio 2003[问题]     参照着例子完成了代码部分的工作。运行,不成功,调试发现总是报“对象引用设置到对象的实例”的错误。上网找了些资料

dshj的专栏 2898

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Ajax 简单实例Java/.net

html>head>meta http-equiv="Content-Type" content="text/html; charset=gb2312" />title>AjaxClienttitle>script language="JavaScript">  var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP

Driftwing 1368

ajax分页事例,asp.net+ajax简单分页实例分析

满意答案tl58882016.04.19采纳率:57%等级:12已帮助:14181人本文实例讲述了asp.net+ajax简单分页实现方法。分享给大家供大家参考,具体如下:这里涉及两个.aspx文件,一个叫Default.aspx,一个叫AjaxOperations.aspx,第一个用来显示一些测试数据,后一个用来对分页进行处理。js文件夹下面还有一个testJs.js的文件,它就是aja...

weixin_35706255的博客 311

AJAX.NET实例

如何在ASP.Net Ajax中调用WebServi (Army 2008-1-11) Asp.NET AJAX和WPF创新Web应用 (Army 2008-1-11) 七种武器—.NET工程师求职面试必杀技(转) (Army 2008-1-11) 2007年你必须学习的10项.NET技术 (Army 2008-1-11) ASP.NET技术的学习顺序问题 (Army 2008-1

师以长技以制夷 487

ajax实例 asp.net,asp.net ajax 简单实例

asp.netajax 简单实例(2010-12-30 04:24:19)实例需求:利用Ajax技术实现一个页面不刷新的,并且验证一个用户名是否被注册过的过程。要求:在页面中添加一个文本框标签用于输入用户名,添加一个按钮用于提交用户数据。验证的结果被直接打印在页面上。操作步骤如下:1)打开VisualStudio 2005建立一个网站2)在VS2005工具箱的HTML栏中添加一个 控件及 控件...

weixin_30692969的博客 397
上一篇: ObjectDataSource和SqlDataSource 用法
下一篇: 使用ashx文件生成验证码图片
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值