什么是Ajax?
AJAX技术,为{A}的缩写。使用XMLHTTP对象
XMLHTTP对象可以创建这样的:
将请求发送给服务器端页面<script language="javascript">
//Global XMLHTTP Request object
var XmlHttp;
//Creating and setting the instance of appropriate XMLHTTP Request object to
//a "XmlHttp" variable
function CreateXmlHttp()
{
//Creating object of XMLHTTP in IE
try
{
XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
XmlHttp = null;
}
}
//Creating object of XMLHTTP in Mozilla and Safari
if(!XmlHttp && typeof XMLHttpRequest != "undefined")
{
XmlHttp = new XMLHttpRequest();
}
}
</script>
我们可以发送一个请求到服务器页面通过XMLHTTP对象从服务器检索数据。
上面的代码说明如何sendnbsp; webpage2.aspx与请求的对象集合的请求。这个集合包含选定的国家本身。处理客户端请求
是在服务器端收到请求时,服务器的页面执行代码,并给出通过XMLHTTP对象的反应:
使用XmlHttp对象来检索数据Dim xList As XmlNodeList
Dim xNode As XmlNode
Dim Str As String
xmlDoc.Load(Server.MapPath("CountriesAndStates.xml"))
Dim Country As String = Request.QueryString("SelectedCountry")
Dim query As String = ("/countries/country[@name='" & country & "']")
xlist = xmlDoc.SelectNodes(query)
Response.Clear()
For Each xNode In xList
If xNode.HasChildNodes = True Then
For Each xN As XmlNode In xNode.ChildNodes
Str &= xN.InnerText & "-"
Next
End If
Next
Response.Clear()
Response.ContentType = "text/xml"
Response.Write(str)
Response.End()
接收来自服务器的页面的响应,可以做这样的:
XMLHttpRequest的就绪状态的有效名单下表中列出:
值 0
未初始化
1
载入
2
加载
3
互动
4
填写
thenbsp状态代码清单; HTTP状态如下:1XX信息
收到的请求,持续不断的过程。100:继续101:交换协议2XX成功
的行动是成功接收,理解,并接受。200:确定201:创建202:接受203:非授权信息204:没有内容205:重置内容
206:部分内容207:多状态3xx的重定向
客户端必须采取更多的行动来完成请求。300:多选题301:永久移动。这和今后所有申请应直接到另一个URI。302:发现这个最流行的重定向代码,但也矛盾的工业标准的做法的一个例子。 HTTP/1.0规范(RFC 1945)所需的客户端执行anbsp的;临时重定向(原描述语是"暂时移动"),但流行的浏览器实施303参见其它。因此,HTTP/1.1的状态代码303和307两种行为之间的歧义。但是,大多数Web应用程序和框架仍然使用302状态码,如果它是303。303:参见其它(HTTP/1.1)。下,可以找到另一个使用GET方法的URI请求的响应。304:不修改305:使用代理(HTTP/1.1)。许多HTTP客户端(如Mozilla和Internet Explorer)不正确地处理这个状态代码的响应。306不再使用,但保留。用于"交换机代理"。307:临时重定向(HTTP/1.1)。在此之际,应反复要求与另一个URI,但将来的请求仍然可以向原始URI。 303,原岗位要求必须重复与另一个POST请求。4XX客户端错误
请求包含语法错误或无法实现。
400:错误的请求401:未经授权。到403/Forbidden类似,但具体使用时,身份验证是可行的,但失败或尚未提供。请参阅基本的认证方案和消化接入认证。402:付款所需。原意是,这段代码可能会被视为某种形式的数字现金/小额计划的一部分,但还没有发生过,从未使用过此代码。403:故宫404:未找到405:不允许的方法406:不接受407:需要代理身份验证408:请求超时409:冲突410:飘411:所需长度412:前提条件失败413:请求实体过大414:请求URI太长415:不支持的媒体类型416:请求的范围无法满足417:预期失败449:与Microsoft扩展重试:重审请求后,应做适当的行动。5XX服务器错误
服务器未能完成显然有效的请求。500:内部服务器错误501:未实现502:错误的网关503:服务不可用504:网关超时505:HTTP版本不受支持509:带宽限制超标。此状态代码,而由多台服务器使用,是不是一个官方的HTTP状态代码。if(XmlHttp.readyState == 4)
{
// To make sure valid response is received from the server,
// 200 means response received is OK
if(XmlHttp.status == 200)
{
ClearAndSetStateListItems(XmlHttp.responseText);
}
else
{
alert("There was a problem retrieving data from the server." );
}
}
有两种类型rectrieving响应XMLHTTP响应。的responseText
responseXML的显示dropdownbox状态
的responseText是分割使用split函数和响应被分配到一个数组。
然后,thenbsp;数组值在下拉列表中添加。var stateList = document.getElementById("stateList");
//Clears the state combo box contents.
for (var count = stateList.options.length-1; count >-1; count--)
{
stateList.options[count] = null;
}
var stateNodes = countryNode.split("-");
//window.alert(stateNodes)
var textValue;
var optionItem;
//Add new states list to the state combo box.
for (var count = 0; count < stateNodes.length; count++)
{
textValue = (stateNodes[count]);
optionItem = new Option( textValue, textValue, false, false);
//window.alert(textValue);
//stateList.appendChild(textValue);
stateList.options[stateList.length] = optionItem;
}
这是我的第一篇文章的代码项目。| sathesh_pandian