首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

Ajax原理及运用二(处理HTTP请求)

2012-11-23 
Ajax原理及应用二(处理HTTP请求)1、当在浏览器地址栏中输入网页地址,或者提交表单时,便通过浏览器向Web服务

Ajax原理及应用二(处理HTTP请求)

1、当在浏览器地址栏中输入网页地址,或者提交表单时,便通过浏览器向Web服务器发送了HTTP请求,HTTP协议规定了Web浏览器如果向Web服务器请求文档,浏览器如何提交表单,Web服务器如何响应客户端请求,以及客户端如何接受及处理服务器响应。
? 详见《HTTP协议讲解》
? 通常情况下,向服务器发送请求,以及接收处理服务器端响应的工作是又浏览器完成。并不是通过JavaScript等客户端脚本完成的。当单击某个超链接时,或者单击提交按钮,或者点击某个定义的超链接时,浏览器便向服务器端发送请求。
? 而目前的大部分浏览器均支持脚本发送HTTP请求,并能够通过脚本处理服务器的响应结果,也就是说,可以通过脚本向Web服务器发送GET或POST请求,并通过脚本操作服务器端返回的响应内容。这种能力使客户端能够隐式的向服务器发送请求,并处理请求结果,但却并不影响客户端用户界面,
2、XMLHttpRequest对象
? 通过脚本处理HTTP请求的能力是基于浏览器提供的XMLHttpRequest对象,该对象提供对HTTP协议的完全访问,通过该对象提供的方法,能够向服务器发送POST或GET请求,并且,能够很容易的获取服务器返回的请求结果。Web服务器的请求结果可以以同步或者异步方式返回。可以是文本的形式或者DOM文档的形式。
?? XMLHttpRequest对象并未标准化,在IE较早的版本中,该对象在IE与其他浏览器中的名称、创建方式并不同。但他们提供相同的功能,所以一般将他们统一称为XMLHttpRequest对象,由W3C起草的标准草案中也采用的是XMLHttpRequest,XMLHttpRequest对象源自微软的创建XMLHTTP请求对象,该对象在处理普通HTTP请求的功能上添加了发送和接收XML代码的功能,但是该对象并不仅限于发送和接收XML代码,它可以接收任何形式的内容。
IE中的XMLHttpRequest对象是一个ActiveX控件对象,需要通过ActiveXObject()构造函数创建,例如:


            (8)、getResponseHeader(header_name)方法
            以字符串形式返回指定HTTP头的内容,参数header_name为要返回的HTTP头的名称。
            例如:

                    xml_http_request.open("GET","/http_test.php","true");
                    [/list]
                    (10)、send(body)方法
                    该方法发送HTTP请求,open()方法设置请求的参数,但不向服务器发送请求,需要通过send()方法向服务器发送请求。
                    参数body表示请求体,是一个字符串或者document对象。如果不需要请求体,则该参数为null,对于post对象,该参数是要传送的数据。对于GET方法,该参数为NULL,大部分浏览器不允许省略该参数。
                    在调用send()方法之前,必须调用open()方法设置请求参数,如果之前未调用open方法,将产生异常。
                    send()方法发送请求的方式取决于open()方法中的asynchronous参数。当该参数设置为false时,send()方法发送请求后将等待服务器响应,直到所有响应内容被收到,readyState属性状态为4,send()方法才返回。在这个过程中,客户端无法进行其他操作。当open()方法设置异步方式时,send()方法发送请求后立即返回,服务器的响应将在后台中进行处理,在异步请求时,在服务器处理请求的过程中,并不影响客户端的其他操作。
                    (11)、setRequestHeader(name,value)方法
                    为请求设置指定头的内容。参数name为HTTP头的内容,名称中不包括空白、冒号、换行符;value为头的内容,不包括换行。
                    该方法只能在readyState为1时,即在open()方法之后,send()方法之前进行调用。对于一些HTTP头,XMLRequest对象设置一个默认值,通过setRequestHeader()设置的值将添加咋默认值后面,以逗号隔开。
                    下面的头由XMLHttpRequest自动设置,并不通过该方法设置:
                    Host、Connection、Keep-Alive、Accept-Charset、Accept-Encoding、if-Modified-Since、if-Range 和Range、if-None-Match。

                    转 http://shawnfree.iteye.com/blog/375455

热点排行