Ajax小示例
来源:互联网 发布:店铺怎么用淘宝客 编辑:程序博客网 时间:2024/06/14 10:51
var Ajax;
function CreateAjax()
{
if (window.XMLHttpRequest)
{
Ajax=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
Ajax=new ActiveXObject("Microsoft.XMLHttp");
}
}
function SendData(url_,sendtext_)
{
Ajax.open("POST",url_,true);
Ajax.onreadystatechange=checkuser;
Ajax.send(sendtext_);
}
function CheckAjaxStatus(Ajax_)
{
if(Ajax_.readyState==4)
if(Ajax_.status==200)
return true;
return false;
}
function checkuser()
{
if(!CheckAjaxStatus(Ajax_)) return;
}
function checkusername()
{
CreateAjax();
SendData("ajaxusername.jsp","username="+name);
}
</script>
解析:
一.XMLHttpRequest的属性和方法:
abort():停止当前请求
getAllResponseHeaders():把所有Http请求的响应首部作为键值对返回
getResponseHeader("header"):返回指定首部的串值
void open(string method, string url, boolean asynch, string username, string password):这个方法会建立对服务器的调用。这是初始化一个请求的纯脚本方法。它有两个必要的参数,还有3个可选参数。要提供调用的特定方法(GET、POST或PUT),还要提供所调用资源的URL。另外还可以传递一个Boolean值,指示这个调用是异步的还是同步的。默认值为true,表示请求本质上是异步的。如果这个参数为false,处理就会等待,直到从服务器返回响应为止。由于异步调用是使用Ajax的主要优势之一,所以倘若将这个参数设置为false,从某种程度上讲与使用XMLHttpRequest对象的初衷不太相符。不过,前面已经说过,在某些情况下这个参数设置为false也是有用的,比如在持久存储页面之前可以先验证用户的输入。最后两个参数不说自明,允许你指定一个特定的用户名和密码。
void send(content):这个方法具体向服务器发出请求。如果请求声明为异步的,这个方法就会立即返回,否则它会等待直到接收到响应为止。可选参数可以是DOM对象的实例、输入流,或者串。传入这个方法的内容会作为请求体的一部分发送。
void setRequestHeader(string header, string value):这个方法为HTTP请求中一个给定的首部设置值。它有两个参数,第一个串表示要设置的首部,第二个串表示要在首部中放置的值。需要说明,这个方法必须在调用open()之后才能调用。
二.(window.ActiveXObject) 什么意思?
解:判断浏览器是否支持ActiveX控件,如果浏览器支持ActiveX控件可以利用
var xml=new ActiveXObject("Microsoft.XMLHTTP");创建XMLHttpRequest 对象(这是在IE7以前的版本中);在较新的IE版本中可以利用 var xml=new ActiveXObject("Msxml2.XMLHTTP")的形式创建XMLHttpRequest对象;而在IE7及非IE浏览器中可以利用var xml=new XMLHttpRequest()创建XMLHttpRequest对象。
创建XMLHttpRequest 对象,必须考虑到浏览器兼容问题
三.使用XMLHTTPRequest对象发送请求和处理响应之前,我们必须要用javascript创建一个XMLHTTPRequest对象。(IE把XMLHTTPRequest实现为一个ActiveX对象,其他的浏览器[如Firefox/Safari/Opear]则把它实现为一个本地的javascript对象)。
四.onreadystatechange方法:
onreadystatechange 事件是微软对 IE 浏览器的私有事件扩充,所有元素都存在 onreadystatechange 事件。
下列元素对象总可以触发此事件,因为他们均会加载数据:APPLET,DOCUMENT,FRAME,FRAMESET,IFRAME,IMG,LINK,OBJECT,SCRIPT 和 XML 元素。
其他元素对象仅当 DHTML Behavior 被追加后会触发 onreadystatechange 事件。
5.readyState属性:
0:表示未初始化,new完后
1:已打开,对象已经创建并初始化,但还未调用send方法
2:已经调用send方法,但该对象正在等待状态码和头的返回
3:已经正在接收数据,但是对象和头的信息不完整。
4:已经接收完毕,所有数据加载完毕。
complete一般相对于js判断文件(图片、swf、脚本文件...)加载状态时使用:0-UNINITIALIZED:XML 对象被产生,但没有任何文件被加载。 1-LOADING:加载程序进行中,但文件尚未开始解析。 2-LOADED:部分的文件已经加载且进行解析,但对象模型尚未生效。 3-INTERACTIVE:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。 4-COMPLETED:文件已完全加载,代表加载成功。在开发中, 两者都表示已经接收到响应数据。六.status状态属性值:
100系列码
从100到199范围的HTTP状态码是信息报告码。基于各种原因考虑,大多数情况下我们 是很少看见这些代码的。首先,如果一个浏览器尝试访问一个网站,而网站返回这些代码时,它们往往都不会显示在屏幕上。它们只是浏览器使引用的内部码。另 外,这些代码不常见的另外一个原因是起初HTTP标准不允许使用这一范围的状态码。就其本身而言,它们也一直没有被广泛地使用。
200系列码
从200到299范围的状态码是操作成功代码。同样的,在正常的Web上网中,你也很可能 不曾在屏幕上看到这些代码。相反的,这些代码是在浏览器内部使用的,用以确认操作成功确认和当前请求状态。虽然这些代码通常不显示,但是有一些故障排除工 具能够读到它们,就像和其它大多数的HTTP状态码一样,它们在错误诊断过程中是非常有用的。
300系列码
从300到399范围的状态码是重定向代码。本质上,它们告诉Web浏览器必须执行其它一 些操作以完成请求。基于这个命令的特点,它可以自动地执行,或者要求额外的用户输入。比如,状态码301表示一个特定资源已经被永久地先移除,因此将来所 有访问该资源请求都应该定向到一个特定的URL上。
400系列码
在400范围的状态码是客户端错误码。这种类型的错误码往往跟安全相关。比如,如果一个客 户端尝试访问一个未授权访问的资源,服务器就会返回一个状态码401。类似地,如果客户端尝试访问一个禁止的资源,在这种情况下客户端的认证状态是一样 的,那么服务器可能会返回一个状态码403,表示禁止对该资源进行访问。
400 Bad Request:表示你提交的数据格式不被服务端认可,或者说是无效的数据格式
404 not found
200 OK
- ajax使用小示例
- Ajax JS 小示例
- Ajax小示例
- Ajax的使用小示例
- AJAX初学者简单小示例
- ajax - SpringMVC、iBATIS-sqlmap、ajax小示例
- ajax 小例子 示例 简单应用 如何使用
- AJAX 示例
- Ajax示例
- ajax示例
- ajax 示例
- ajax示例
- PHP jQuery ajax 表单提交小示例(含insert, select)
- Ajax简单请求示例
- java Ajax 示例
- ajax读rss示例
- php+ajax简单示例
- Ajax应用简单示例
- 【面向对象程序设计之CRC】CRC卡及其应用
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- android--广播、服务、数据库、通知、包原理图
- qt 5.3 安装调试
- 循环队列的实现
- Ajax小示例
- Storing Java objects in MySQL blobs
- 生活丰富
- 当前不会命中断点。源代码与原始版本不同”的问题的有效解决办法
- 算法学习-链表创建,头插法和尾插法
- MATLAB R2012a与vs2010混合编程 error LNK2019
- N个元素取出最大(小)的K个元素
- 客户端防表单重复提交和服务器端session防表单重复提交
- tomcat内存溢出总结