加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

AJAX(二)--核心对象XMLHttpRequest

发布时间:2020-12-15 21:03:40 所属栏目:百科 来源:网络整理
导读:AJax的核心对象在1988年就已经集成于IE中了,随后在各种主流浏览器中也陆续开始得到支持。XMLHttpRequest对象已经在大多数的浏览器中使用,这个对象是Ajax兴起的客观基础以及前提条件。 XMLHttpRequest强大之处就是允许开发者在JavaScript中以异步的方式向服

AJax的核心对象在1988年就已经集成于IE中了,随后在各种主流浏览器中也陆续开始得到支持。XMLHttpRequest对象已经在大多数的浏览器中使用,这个对象是Ajax兴起的客观基础以及前提条件。

XMLHttpRequest强大之处就是允许开发者在JavaScript中以异步的方式向服务器发出HTTP请求并得到响应。让客户端可以在任何时候与服务器进行通信,并且不仅限于在整个页面提交的时候。同时,异步不会阻塞用户的当前操作,用户等待的时候仍然可以进行其他的操作。

创建XMLHttpRequest对象:

Var xmlHttp=new XMLHttpRequest();

老版本的IE使用Activex对象:

Var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

//为了避免不支持的现象。

Var xmlHttp;

If(window.XMLHttpRequest)

{

           //对于新版本的浏览器。

xmlHttp=new XMLHttpRequest();

}

Else

{

           //对于旧版本的浏览器。

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

}

 


将请求发送到服务器:

用XMLHttpRequest对象的open()和send()方法:

xmlHttp.open("GET","txtName.text",true);

常用方法:

方法

描述

Open(method,url,async)

规定请求的类型、URL以及是否异步处理请求。

method:请求的类型;get或post

url:文件在服务器上的位置。

async:true(异步)或false(同步)

Send(string)

将请求发送到服务器。

setRequestHeader(header,value)

向请求添加HTTP头。

header:规定的头名称。

value:规定的头值。

属性:

属性

描述

onreadystatechange

每当readyState属性改变时,就会调用该函数。

readyState

存有XMLHttpRequest的状态。0到4变化。

0:请求未初始化。

1:服务器链接已建立。

2:请求已接受。

3:请求处理中。

4:请求已完成,且响应已就绪。

status

200:"ok"

404:为找到页面。

请求服务的类型:

Get与Post相比较:

大部分情况使用Get。

特殊情况使用Post:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(post没有数据量限制)
  • 发送包含未知字符的用户输入时,post比get更稳定更可靠。

小结:

整个过程是:

创建XMLHttpRequest 对象 -> 指定发送地址及发送方法 -> 发送请求 -> 指定处理方法并处理返回结果。但是需要注意,我们正常的思路理解是这样的,可是onreadystatechange事件句柄指定处理方法需要在发送之前就指定好,否则无法处理状态变化事件。

所以我们应该按照下面的流程:创建XMLHttpRequest 对象 -> 指定发送地址及发送方法 -> 指定状态变化处理方法 -> 发送请求,请求发送后状态变化了就会自动调用指定的处理方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读