NET中用JavaScript来创建XMLHttpRequest 的Ajax开发介绍

利用 Microsoft.XMLHTTP/XMLHttpRequest 对象 实现Ajax技术 的总结 一、实现Ajax的方法有很多 阅读详情

首先,我们需要用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP请求, XMLHttpRequest 类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP。

后来Mozilla﹑Netscape﹑Safari 和其他浏览器也提供了XMLHttpRequest类,不过它们创建XMLHttpRequest类的方法不同。

 

对于Internet Explorer浏览器,创建XMLHttpRequest 方法如下:

Ø         xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0

Ø         xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");

Ø         xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");

 

由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致,为了更好的兼容不同版本的Internet Explorer浏览器,因此我们需要根据不同版本的Internet Explorer浏览器来创建XMLHttpRequest类,上面代码就是根据不同的Internet Explorer浏览器创建XMLHttpRequest类的方法。

 

对于Mozilla﹑Netscape﹑Safari等浏览器,创建XMLHttpRequest 方法如下:   xmlhttp_request = new XMLHttpRequest();

 

如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。 为了解决这个问题,如果服务器响应的header不是text/xml,可以调用其它方法修改该header。

xmlhttp_request = new XMLHttpRequest();

xmlhttp_request.overrideMimeType('text/xml');

在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法写成如下形式: 

try{

if( window.ActiveXObject )

{

for( var i = 5; i; i-- )

{

try{

I      f( i == 2 )

{

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

}

else

{

xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );

xmlhttp_request.setRequestHeader("Content-Type","text/xml");

xmlhttp_request.setRequestHeader("Content-Type","gb2312");

}

break;

}

catch(e)

{

xmlhttp_request = false;

 }

 }

}

else if( window.XMLHttpRequest )

{

 xmlhttp_request = new XMLHttpRequest();

if (xmlhttp_request.overrideMimeType)

{

 xmlhttp_request.overrideMimeType('text/xml'); }

}

}

catch(e)

{

 xmlhttp_request = false;

}

在定义了如何处理响应后,就要发送请求了。可以调用HTTP请求类的open()和send()方法,如下所示:

xmlhttp_request.open('GET', URL, true);

xmlhttp_request.send(null);

open()的第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。 按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。

第二个参数是请求页面的URL。

第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。

用JavaScript来创建XMLHttpRequest 类向服务器发送一个HTTP请求后,接下来要决定当收到服务器的响应后,需要做什么。这需要告诉HTTP请求对象用哪一个JavaScript函数处理这个响应。可以将对象的onreadystatechange属性设置为要使用的JavaScript的函数名,如下所示:

xmlhttp_request.onreadystatechange =FunctionName;

FunctionName是用JavaScript创建的函数名,注意不要写成FunctionName(),当然我们也可以直接将JavaScript代码创建在onreadystatechange之后,例如:

xmlhttp_request.onreadystatechange = function(){

// JavaScript代码段

};

首先要检查请求的状态。只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。

readyState的取值如下:

Ø         0 (未初始化)

Ø         1 (正在装载)

Ø         2 (装载完毕)

Ø         3 (交互中)

Ø         4 (完成)

所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。具体代码如下:

if (http_request.readyState == 4) { // 收到完整的服务器响应 }

else { // 没有收到完整的服务器响应 }

当readyState=4时,一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。完整的状态取值可参见W3C文档。当HTTP服务器响应的值为200时,表示状态正常。

在检查完请求的状态值和响应的HTTP状态值后,就可以处理从服务器得到的数据了。有两种方式可以得到这些数据:

(1) 以文本字符串的方式返回服务器的响应

(2) 以XMLDocument对象方式返回响应

 

代码样例:

    <script  type="text/javascript">

<!--

//得到内容容器和提示框节点

var content=document.getElementById("content");

var tip=document.getElementById("tip");

function getPage(page){

    tip.style.display="inline";

    var key=document.forms.form1.title.value;

    //创建浏览器兼容的XMLHttpRequest对象

    var xmlhttp;

    try{

        xmlhttp= new ActiveXObject('Msxml2.XMLHTTP');

    }catch(e){

        try{

            xmlhttp= new ActiveXObject('Microsoft.XMLHTTP');

        }catch(e){

            try{

                xmlhttp= new XMLHttpRequest();

            }catch(e){}

        }

    }

    //定义XMLHttpRequest对象的事件处理程序

    xmlhttp.onreadystatechange=function(){

        if(xmlhttp.readyState==4){

            //关闭显示条

            tip.style.display="none";

            if(xmlhttp.status==200){

                //当加载成功时将内容显示于页面

                content.innerHTML=xmlhttp.responseText;

            }else{

                //否则弹出错误信息

                alert(xmlhttp.status);

            }

        }

    }

    //创建一个连接

    xmlhttp.open("get","show.aspx?page="+page+"&key="+key);

    //发送请求

    xmlhttp.send(null);

 

}

-->

</script>

show.aspx

private void Page_Load(object sender, System.EventArgs e)

{

     Response.Write(“你好”);

}

asp.net实现无刷新ajax技术登录界面 首先声明我是asp.net的初学者,有好多技术问题都不会,希望以后看到博客的技术大牛们,看到不对的和不好的,都能够提出; 1、首先用visual studio 2012新建一个asp.net网站,添加一个js文件夹,添加javascript文件名命AJAx.js,再添加一个Login.aspx网页,如图结构: 2、Default.aspx很简单 阅读详情

相关推荐

Ajax应用开发典型实例实战详解

在发送请求前,可通过方法添加自定义HTTP请求头,这对身份验证、内容协商、CSRF防护等场景至关重要。

weixin_34268462的博客 822

ASP.NET MVC中使用AJAX(XMLHttpRequest、Microsoft AJAX Library......)

 AJAX的好处就是不会堵塞页面,可以提高用户体验,可以减少数据传输尺寸,提高应用程序的性能.目前,AJAX技术可以说是已经成为WEB开发的标准技术.      AJAX技术是纯客户端技术,任何客户端框架(如:Microsoft AJAX Library,Prototype,JQuery等)可以与任何服务器技术配合.在ASP.NET MVC P5中也对AJAX技术进行了整合.本文将以ASP.N

努力并不一定成功,但放弃却一定会失败! 983

数字摄影与摄像中的图像信号处理器(ISP):流程与经典算法详解

图像信号处理器(Image Signal Processor, ISP)是现代数字成像系统(如智能手机、数码相机、网络摄像头等)中的核心组件,扮演着将图像传感器(如CMOS或CCD)捕获的原始光电信号转换为高质量、可供观看或进一步处理的数字图像的关键角色。在数字摄影和摄像的整个链路中,光线首先通过镜头(Lens)聚焦到图像传感器上,传感器将光信号转换为模拟电信号,随后经过模数转换(A/D转换)变为原始的数字图像信号。

qq_44682523的博客 3729

js 怎么拦截ajax,JS利用XMLHttpRequest拦截ajax请求

function XMLHttpRequestBreak(fun=()=>false){let f = XMLHttpRequest.prototype.open;let add = function(){XMLHttpRequest.prototype.open = function(...args){check = fun(args);if(check){throw check;}f.a...

weixin_35159324的博客 2300

Python 爬虫实战:破解网页 JS 混淆加密参数

摘要:本文针对Python爬虫破解JS混淆加密参数的技术难题,系统解析了变量混淆、控制流混淆、AES/MD5加密混淆等常见类型及其检测方法,提出"定位-还原-复现"的三步破解策略。通过实战案例详细演示了从JS逆向分析到Python代码实现的完整流程,包括MD5签名生成、AES加密复现等核心代码实现,并对不同混淆场景的破解方法进行了对比分析。文中特别强调技术应用的合规性边界,指出开发者应遵守相关法律法规,在合理范围内使用逆向技术。随着反爬技术升级,建议开发者持续学习动态调试等进阶技能,同时

2503_91057718的博客 2067

电化学-论文分享-NanoStat: An open source, fully wireless potentiostat

本文主要分享论文NanoStat: An open source, fully wireless potentiostat,并记录学习笔记。如果有条件,建议看原文最好。

分享技术笔记,希望对大家能够有一定的帮助,同时也通过归纳总结提升自己的个人能力。 2875

【ASP.net】Ajax介绍

什么是AJAX AJAX:(Asynchronous JavaScript and XML)中文意思:异步JavaScript和XML。指一种创建交互式网页应用的网页开发技术。AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,不是指一种单一的技术,而是有机地利用了一系列相关的技术: JavaScript + XMLHttpRequest + CSS +服务器端 的集合: ...

Alice 864

破局KS滑块验证码:从参数加密到轨迹生成,Python逆向全流程避坑实录

快手滑块验证码破解实战:从逆向分析到自动化实现 摘要:本文详细记录了破解快手滑块验证码(KS滑块)的完整过程。通过48小时的逆向分析,揭示了KS滑块的双重校验机制:不仅需要精准定位滑块缺口位置,还需满足参数加密和轨迹特征校验。文章从反爬逻辑分析入手,介绍了工具选型与环境配置的避坑要点,重点讲解了滑块缺口距离计算方法和核心加密参数slide_sign的逆向过程。通过OpenCV边缘检测和Frida动态调试技术,成功实现了滑块验证的自动化,准确率提升至99%。文中附有Python实现代码和实际操作踩坑记录,为开

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1663

asp ajax xmlhttp,在ASP.NET中直接创建XMLHttpRequest对象展现Ajax技术

环境vs.net 2003新建一个类WebForm1,其html页面代码如下:Codebehind="WebForm1.aspx.vb"Inherits="weishuang.WebForm1"%>/p>Transitional//EN">WebForm1name="vs_defaultClientScript">name="vs_targetSchema">//Aj...

weixin_30970867的博客 364

药物对接仿真软件:HADDOCK_(3).分子对接基本原理

分子对接(Molecular Docking)是计算化学和结构生物学中的一种重要技术,用于预测小分子(如药物分子)与大分子(如蛋白质)之间的相互作用模式和结合亲和力。这一技术在药物设计和开发中具有广泛的应用,尤其是在寻找和优化潜在的药物候选物方面。本节将详细介绍分子对接的基本原理,包括其理论基础、计算方法和应用。

kkchenjj的博客 1170

UG\NX二次开发 找不到指定的dlx文件(Specified Dlx file not found)

有群友问:用Ctrl+U运行的时候就报错,找不到指定的dlx文件Specified Dlx file not found。怎么处理。

王牌飞行员_里海的博客 1130

ajax(判断浏览器创建xmlhttprequest对象),不同浏览器创建XMLHttpRequest对象

function getXHR() {if (XMLHttpRequest) {return new XMLHttpRequest();}else {return new ActiveXObject("Microsoft.XMLHTTP");}}function getXHR() {if (typeof XMLHttpRequest == "undefined") {XMLHttpRequest ...

weixin_29531757的博客 601

Python爬虫实战:汽车之家车型参数与口碑数据抓取分析

在当今信息爆炸的时代,购车决策已从传统的4S店咨询转变为数据驱动的智能化过程。汽车之家作为国内领先的汽车信息平台,汇聚了海量车型参数、车主口碑和专业评测数据。本文将详细介绍如何使用Python最新爬虫技术构建一个高效、稳定的汽车数据采集系统,通过多维度数据分析辅助用户做出更明智的购车决策。本项目将采用异步爬虫、智能反爬绕过、数据清洗与分析等现代化技术栈,完整实现从数据采集到可视化分析的全流程。本文详细介绍了如何使用Python最新技术构建一个功能完整的汽车之家数据爬虫系统。

2201_76125261的博客 1490

[ASP.NET]创建XMLHttpRequest对象

XMLHttpRequest

Stephanie翟倩 733

SKILL 是什么?怎么做?五分钟 带你从入门到精通

skill-creator 是 Anthropic 官方开源的“元技能”——一个专门用来创建 Skill 的 Skill。你只需要用自然语言描述想要什么功能,它会自动生成。从更宏观的视角看,Skills 的出现标志着 AI 编程的一次范式转变。在传统的 AI 编程中,代码是确定性的:1 是 1,2 是 2。但到了大模型时代,代码变得不确定——你不知道模型会输出什么,不知道它会不会突然删掉几行代码。这种不确定性让很多开发者感到不安。Skills 把这套逻辑又拉了回来。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 643

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ajax之XMLHttpRequest

用了一段时间的Asp.net ajax,开发出来的东西太慢,放弃,看看还是直接用XMLHttpRequest。 一个小例子: 创建httpRequest 对象 //http_request = false; if(window.XMLHttpRequest) { http_request = new XMLHttpRequest(); ...

dbd379717的博客 119

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ASP.NET and Ajax - using XmlHttpRequest

1. 使用AJAX If you are not interested in using the ASP.NET AJAX library offered for ASP.NET, but would like to feature small amounts of AJAX functionality on your pages, you can do this easily with som...

weixin_30698527的博客 197

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

原生js ajax请求与跨域

什么是ajax 它是一种用于创建快速动态网页的技术,通过后台与服务器进行少量数据交换(请求后端数据),ajax可以使网页实现异步更新,即在不更新整个网页的情况下 进行部分网页更新 减少用户的等待时间,加快响应。 XMLHttpRequest 对象 XMLHttpRequest 对象所有的是ajax的基础,XMLHttpRequest 用于在后台与服务器的数据交互 目前所有的浏览器都支持XM...

qq_42815251的博客 3727

ASP.NET MVC AJAX 文件上传

使用AJAX上传文件时,不要忘记设置contentType: false和processData: false,这两个选项在jQuery中用于阻止jQuery处理表单数据,这对于文件上传是必需的。以下是实现文件上传的几种常用方法,包括使用jQuery和原生AJAX。url: '@Url.Action("Upload", "File")', // 确保这里的URL正确指向你的控制器方法。如果你不想使用jQuery,可以使用原生JavaScript的XMLHttpRequest对象来实现文件上传。

Rverdoser的博客 587

XMLHttpRequest对象是AJAX的核心

网络开发人员总是抱怨基于浏览器的应用软件的无状态性。就是说,一旦向服务器发出数据请求,且数据发送完毕后,所产生的连接即会断开。随后的数据请求又要建立新的连接。虽然可以应用许多方法,如cookie或ASP.NET之类的专利技术,将数据保存在客户端;但XMLHttpRequest对象

蓝色月光 491

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

本文实例讲述了asp.net+ajax简单分页实现方法。分享给大家供大家参考,具体如下:这里涉及两个.aspx文件,一个叫Default.aspx,一个叫AjaxOperations.aspx,第一个用来显示一些测试数据,后一个用来对分页进行处理。js文件夹下面还有一个testJs.js的文件,它就是ajax操作的核心部分。不错,code is cheap。看代码:/*testJs.js*/// ...

weixin_39983223的博客 282

在ASP.NET中实现AJAX (转)

http://news.csdn.net/n/20051028/28204.htmlAsynchronous JavaScript and XML(AJAX)最近掀起的高潮,要完全归功于Google在Google Suggest和Google Maps中的使用。对ASP.NET而言,AJAX不需要回传就能进行服务器端处理,从而使客户机(浏览器)具有丰富的服务器端能力。换句话说,它为异步指派和处理请

fzzf 1741

javascript笔记:Ajax概述

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。 Ajax = 异步 JavaScript 和 XML 或者是 HTML(标准通用标记语言的子集)。 Ajax 是一种用于创建快速动态网页的技术。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 文章目录Aja...

weixin_42124234的博客 475

AJAX请求ASP.Net脚本

Ajax基础-XMLHttpRequest对象的创建、数据请求和处理中已经介绍了XMLHTTPREQUEST对象的使用。下面是使用该对象请求服务器数据。代码在IE6、FireFox1.5、NetScape8.1、Opera9调试通过。服务器为Window2000P + IIS5+ASP.net 2.01、使用XMLHTTPREQUEST对象请求ASP.Net文件这里仍然使用GET方法来请求服务器端

CLassic_Ms的专栏 1058

.Net环境下基于Ajax的MVC方案

2007年06月01日 13:23:00 .Net环境下基于Ajax的MVC方案 1、问题背景现在,越来越多人开始尝试基于Ajax进行无刷新的Web开发,不过,在.Net环境下,应用Ajax并不是非常方便,这主要可能是由以下一些原因造成的:.由于Ajax基于javascript的本质,使得开发者必须对javascript非常了解,起码,其ja

秦梦瑶的专栏 481

在ASP.NET中实现AJAX

<!-- csdn_AD_Position_GroupID = "{e025b96b-2fda-4e82-84ef-3e0772838ed3}"; csdn_AD_Page_Url = document.location; csdn_AD_CurrPage_CharSet = "gb2312"; //-->Asynch

croppy的专栏 1442
上一篇: ASP.NET配置Oracle的相关说明
下一篇: ASP.NET 2.0中的ICallbackEventHandler说明
daichenghua
博客等级 码龄21年 72粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值