ajax语法...
时间:2010-08-12 来源:kong1yi
ajax用时,选用有ajax的环境,
否则如选用新建网站,web.config中的文件要手动配置
用有ajax的环境,web.config中已配置好,
-------------
ajax:thinking:客户端请求到server,server处理结果后返回到客户端,客户端响应
如onmouse 或oublue等事件只在html控件中有,在asp:服务器控件中没有
只有div:标识的控件用innerText传参,span:innerHtml
post模式,接收时用request.form[].tostring();
get模式: 用Respone.QueryString[]
在Ajax应用程序中,XMLHttpRequest对象负责将用户信息以异步的方式发送到服务器,并接收服务器返回的响应信息和数据。
ajax:核心对象:XMLHttpRequest对象
-----------------------------------------
XMLHttpRequest对象的方法:
void open(str method,string url,bool async)打开一个http对象:method:提交到server的模式post,get
url提交到的页面地址,async:是否为异步请求的方式,应设为true 否则异步请求无从谈起了,没有意义了
void send(string body)//发送内容 调用此方法后,异步请求已发起,设置要在此方法之前设置完,无内容时可设为null,此参数不能不有,否则报错
请求实际上通过一个send()方法调用触发
void setHeader(string header,string value)设置头信息,header:头信息名称value值
setRequestHeader("header", "value"):把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()
string getResponseHeader(string header)此方法得到response后使用 得到某一条头信息的值 header:头信息名称
string getAllResponseHeader()以字符串形式返回所有的头信息
void abort()中止 发出请求后中断此请求
---------------------------------
XMLHttpRequest对象的属性
function Onreadystatechange:指定当readyState属性改变时事件的处理句柄,属性为只读。回调函数
number readyState:返回当前请求的状态,属性为只读。
[
ReadyState返回当前XMLHttp请求的状态,有5种:
0:请求未初始化。
1:请求已经建立。
2:请求已经发送。
3:请求处理中。
4:响应已经完成 实际只用此状态就可,
]
responseBody:将响应信息正文以unsigned byte数组形式返回,属性只读。
responseStream:以Ado Stream对象的形式返回响应信息,属性只读。
-------------------
下面2个都是返回内容,
string responseText:将响应信息以字符串形式返回,属性只读。返回文本 此用的多一些
XmlDocument responseXML:将响应信息转换为XmlDocument对象返回,属性只读。返回一个html对象
------------------------
number Status:返回当前请求的Http状态码。如404=“文件未找到”,200=“成功” 返回response的代码
string statusText:返回当前请求的响应状态行,属性只读。字符串形式的信息如ok表示成功
-----------------------------------------
ajax:页面间相互调用js方法,使其局部刷新
:IE6.0 activex控件Msxml2.XMLHTTP
==========================发送请求
function startRequest() {
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET", "Default.aspx", true);
xmlHttp.send(null);
}
========================创建XMLHttpRequest对象
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function init() { //此方法可适应所有浏览器
var xmlHttp = null;
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");//创建对象ie6.0:Msxml2.XMLHTTP
}
catch(e1) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//创建对象ie5.5:Msxml2.XMLHTTP
}
catch(e2) {
xmlHttp = null;
}
}
if ( !xmlHttp && typeof XMLHttpRequest != "undefined" ) {//其他浏览器
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
==========================修正ajax Sys未定义错误
<system.web>
<httpHandlers>
<!--shaocm 20090122 修正ajax Sys未定义错误-->
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="Microsoft.Web.Script.Services.ScriptHandlerFactory, Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
</system.web>