关于在WebForm页面使用Ajax
关于ajax我相信做B/S开发的程序员都不陌生,在做电子商务网站,还是其他的B/S架构的系统,ajax使用的都特别频繁。那么ajax是什么呢?
function createAjax() {var ajaxObject = false;try { ajaxObject = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {try { ajaxObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { ajaxObject = false; } }if (!ajaxObject && typeof (XMLHttpRequest) != 'undefinded') { ajaxObject = new XMLHttpRequest(); }return ajaxObject;}
<script type="text/javascript">var ajaxObject; window.onload = function () { ajaxObject = createAjax(); getControl("btnOK").onclick = submitData1; } function submitData1() {var txtName = getControl("txtName").value;//以Post方式请求发送请求 ajaxObject.open("POST", "ResponseEnd.aspx", true);//以Post方式发送异步请求需要设置请求头 ajaxObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajaxObject.onreadystatechange = function () {if (ajaxObject.readyState == 4) {//状态200表示异步对象已经完全接收完服务器响应的数据 if (ajaxObject.status == 200) {var res = ajaxObject.responseText; alert(res); } } }//发送异步请求(Post方式发送请求在send里面书写自己要发送给服务器的参数) ajaxObject.send("flag=1&name=" + txtName); } </script>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace Web
{public partial class ResponseEnd : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!string.IsNullOrEmpty(Request["flag"])){ShuChu();}}private void ShuChu(){#region 方法一//try//{// string name = Request["name"];// Response.Write(name);//}//catch (Exception ex)//{// throw new Exception(ex.Message);//}//finally//{// Response.End();//} #endregion#region 方法二//try//{// string name = Request["name"];// Response.Write(name);// this.Page.Visible = false;// Context.ApplicationInstance.CompleteRequest();//}//catch (Exception ex)//{// throw new Exception(ex.Message);//} #endregiontry{string name = Request["name"];Response.Write(name);Response.End();}catch (System.Threading.ThreadAbortException ex){}catch (Exception ex){throw new Exception(ex.Message);} }}
}
关于Ajax,我相信做B/S开发的大虾大牛们都特别的熟练,我写这篇博客主要是针对在WebForm中使用ajax的时候,我们后台输出我们想要的数据的时候要注意的地方,那就是:我们在Response.Write("data")输出我们想要的数据,但是我们不想同时把页面的html代码也输出那怎么办?(如果异步对象把请求发送到一个ashx页面中,或者发送到一个把前台页面中的html代码给删除掉的aspx页面中,我们也不用操心如何过滤掉html代码,但开发中有的需求就是不能这样处理),很多人用Response.End()来终止当前页面的执行。这样没错,但是要注意一点,如果你是try...catch里面使用了Response.End()的话,会被捕捉到一个异常:线程被中止"。这是因为:
Response.End 方法终止页的执行,并将此执行切换到应用程序的事件管线中的Application_EndRequest 事件,同时抛出ThreadAbortException 异常,异常信息为“正在中止线程”。
那如果我在WebForm中使用ajax,并且是把请求发送给本页面,同时我在后台页面中只输出我想要的数据,但不想输出页面的html代码那怎么办呢?这个我在上面的代码中写的很清楚了,我提供了三种解决方案,有碰到这个问题的各位朋友,可以参考我在ResponseEnd.aspx.cs里面写的代码,三种方式都能达到我们预期的效果。
深入去学习ajax的话,我觉得这里头的学问很大,哈哈,小弟不才,写了这篇博客,希望各位不要笑话。如果哪位觉得可以看看的话就看看,觉得不堪的话,就一笑置之吧,呵呵。
转载于:https://www.cnblogs.com/happylinjie/archive/2012/01/25/2329406.html
关于在WebForm页面使用Ajax相关推荐
- WebForm页面使用Ajax
AJAX:"Asynchronous JavaScript and XML" 中文意思:异步JavaScript和XML.指一种创建交互式网页应用的网页开发技术.AJAX并非缩写词 ...
- jQuery监控页面所有ajax请求的方法
jQuery实现监控页面所有ajax请求的方法 本文实例讲述了jQuery实现监控页面所有ajax请求的方法.分享给大家供大家参考,具体如下: 你是不是有遇到这样的问题:页面发起两个ajax请求,希望 ...
- jq中法可以发起ajax请求的方法有,jQuery实现监控页面所有ajax请求的方法
本文实例讲述了jQuery实现监控页面所有ajax请求的方法.分享给大家供大家参考,具体如下: 你是不是有遇到这样的问题:页面发起两个ajax请求,希望它们都成功以后,再做一个动作? 很容易想到的解决 ...
- ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期
开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计.本篇,我们来看看WebForm模式下的页面生命周期. ( ...
- UnityWebform(2):自定义LifetimeManager和TypeConverter使Unity从HttpContext中取值注入WebForm页面...
上一篇Unity&WebForm(1): 自定义IHttpHandlerFactory使用Unity对ASP.NET Webform页面进行依赖注入中让Unity和WebForm结合在一起,通 ...
- jQuery实现监控页面所有ajax请求的方法
本文实例讲述了jQuery实现监控页面所有ajax请求的方法.分享给大家供大家参考,具体如下: 你是不是有遇到这样的问题:页面发起两个ajax请求,希望它们都成功以后,再做一个动作? 很容易想到的解决 ...
- webform ajax 表格,在webform中使用ajax
如果你用过Asp.net webform, 说明你也算是.NET 开发的老兵了.WEBform应该是2011-2013左右,当时还用visual studio 2005. visual studio ...
- aspx页面使用ajax遇到try catch中使用Response.End()报错
1.使用Ajax接收数据,在返回Response.Write()后应该调用Response.End()才能将数据写入到调用的页面,才能被jQuery的回调函数获取到返回的JSON数据 2.在try-- ...
- python爬虫动态加载页面_如何爬动态加载的页面?ajax爬虫你有必要掌握
通过前面几期Python爬虫的文章,不少童鞋已经可以随心所欲的爬取自己想要的数据,就算是一些页面很难分析,也可以用之前介绍的终极技能之「Selenium」+「Webdriver」解决相关问题,但无奈这 ...
最新文章
- 自动驾驶有量子飞跃式改进,马斯克称年内实现L5级别自动驾驶?
- nginx rewrite中last和break的区别
- python序列数据类型_Python 数据类型 之 序列类型
- ref 和out 关键字
- 数据算法之二叉树平衡(BinTreeNode Rotate)的Java实现
- 爬虫养成记 - urllib2的调试和错误处理
- 《Word排版艺术》读后感,兼谈LaTeX
- activex 控件 过期,解决“无法注册Flash Player 的ActiveX控件”的问题
- 共享计算机无法打开文件,Windows7局域网无法打开共享文件分析
- thinkpad T500开机大于10分钟,黑屏
- pandas:sample函数解释
- 红尘梦落,卧醉千年,当所有的繁华散尽
- Tensorflow的基本概念与常用函数
- 在浏览器输入url回车后发生了什么
- 拼多多是PHP还是java,应届程序员收到拼多多offer 表情瞬间爆发
- Tor配置:514 Authentication required
- 测试iphone硬件好坏的软件,如何检测Apple手机硬件是否损坏
- 什么是哲学?《哲学家们都干了些什么?》读后感
- uniapp 自定义相机人脸和人脸识别
- EIM是什么?与QQ有什么区别?
热门文章
- SpringMVC之Controller查找(Spring4.0.3/Spring5.0.4源码进化对比)
- virtualbox 启动时Kernel driver not installed (rc=-1908) 错误的解决方法
- 使用扩展的 CodeIgniter 框架实现 RESTful 框架
- Android 多线程下载 显示进度 速度
- centos下nginx+postgresql+php+memcached+apc安装与配置
- Java 用正则表达式 提取目录
- Linux系统管理学习路线图
- 分享一个WM上绘制饼图、柱形图、折线图的控件类
- HAL Flat Display Driver Demystified
- 企业短信平台会被其他的营销工具代替吗?企业短信平台有什么过人之处