本来,微软设计xmlhttprequest让互联网探险家(即)装载xml文件从javascript 。 即使它已经xml在它的名字, xmlhttprequest真的是一个通用的http客户端的javascript 。 有了它, javascript的,可以作出get和post http请求。 ( post请求,数据可以被发送到服务器中的格式,你的选择) 。主要限制xmlhttprequest是由于该浏览器的安全性沙盒。 它可以使唯一的http ( s )请(档案url的,举例来说,将不会工作) ,它可以提出要求,只有以相同的域名作为目前装货页。
|
|
安全理事会的局限性xmlhttprequest做限制方法,使你可以使用它,但贸易起飞,以确保安全,是值得的。 大多数攻击对javascript的应用围绕注入恶意代码进入该网页。 如果xmlhttprequest不准请至任何一个网站,它会成为一个主要的玩家,在这些攻击。 安全啤酒馆降低了这些潜在的问题。 此外,它还可以简化编程模型,因为javascript代码可以含蓄地信任任何数据,它负载从xmlhttprequest 。 它可以信任的数据,因为新的数据,只是由于安全作为页装货初始页。
尽管事实上xmlhttprequest规定,只有一小阿比只是一小撮的方法和性能,它有其差异的浏览器。 这些分歧主要是在事件处理与对象实例(即xmlhttprequest实际上是一个activex对象) ,所以他们并不难工作。 在以下概述了xmlhttprequest空气污染指数, mozilla的语法xmlhttprequest实例是使用。 如果你想运行的例子,即,你需要更换新的xmlhttprequest ( ) ;无论是新activexobject ( " msxml2.xmlhttp.3.0 " ) ;或充分的跨浏览器实例的方法显示,在"跨浏览器xmlhttprequest "一节的这篇文章。
xmlhttprequest是最常用的方法,为阿贾克斯通信,因为它提供了两个独特的功能。 第一个特点,提供有能力负荷新的内容,如果没有内容则是任何变化,这使得它非常容易,以适应阿贾克斯到你的正常的发展模式。 第二个特点,能够使javascript作同步的来电。 同步呼吁停止其他一切业务,直到它的完整,虽然这是不是一种选择,这就是通常所用,它可以是有用的在这些案件中,目前要求必须完成,然后再采取行动。
开放式是用于设置请求类型(得到的,后付诸表决,或propfind ) ,网址页面被要求,以及是否该电话会议将通过异步。 用户名和密码,为http认证也可以选择包括通过。 网址可以是相对路径(如page.html )或一个完整的一个,其中包括了服务器的地址(如http://blog.joshuaeichorn.com/page.html ) 。 基本方法签名是:
在javascript的环境,安全限制已到位。 这些安全限制,导致公开的方法中抛出一个例外,如果url的是从一个不同的域,比目前的一页。 下面的例子中采用的是开放式成立一个同步get请求,以index.html :
发送方法,使连接到指定的网址,在开放的。 如果请求是异步,呼吁将返回它立刻;否则,呼叫将阻止进一步的执行,直到页面已被下载了。 如果请求类型是邮政外,有效载荷将被派往当身体的请求被发送到服务器上。 该方法的签名是:
当你作一个职位的要求,您将需要设置的内容类型标头。 这样一来,服务器知道要怎样做与上传内容。 模仿派的形式,通过http后,你定内容类型是application / x - www的形式进行urlencode 。 urlencode来的数据是相同的格式,你看,在一个url后, " ? " 。 你可以看到,这方面的一个例子编码数据,使一种形式,并设置它的方法得到的还要多。 下面的例子显示同步后要求index.php即派出了urlencoded有效载荷。 如果index.php载< ? php后续代码var_dump ( $ _post ) ; ? > ,你可以看到你提交的数据翻译为,如果它的正常形式,在警报:
有很多不同的案件中,设置一个头一个要求可能是有益的。 最常见的使用setrequestheader ( ) ,是一套内容型,因为大部分的web应用已经知道如何对付某些类型,如urlencode来。 该setrequestheader方法签名有两个参数:包头至集和它的价值:
因为发出的请求中使用xmlhttprequest发出同样的标准头文件,包括曲奇头和http认证报头,作为一个正常的浏览器的请求,包头名字通常会名称的http报头,你想推翻。 此外,以压倒一切的默认头, setrequestheader是有用的设置习俗,特定应用的头文件。 定制头文件一般都是前缀与x分辨,从标准。 下面的例子中,使同步get请求加入一个头所谓的x -美孚以test.php的。 如果test.php的载有< ? php后续代码var_dump ( $ _server ) ; ? > ,你会看到提交头,在警报:
该getresponseheader方法,让你得到一个单一的头信息的响应;这是特别有用的时候,你只需要一个头一样,内容类型;注意到指定包头是不区分大小写的。 该方法的签名具体内容如下:
getallresponseheaders回报所有的头从反应在一个单一字符串;这是用来调试或寻找一种价值。 下面的例子中,使同步get请求,以test.html 。 当客户端收到回应,内容类型发出声响及所有报头通知:
所有的浏览器都实施一项流产( )方法,它是用来取消一个在建工程的异步请求。 (举例来说,这表现在"发送异步请求"一节,在这篇文章中) 。基于mozilla浏览器还提供一些额外的方法,除了基本的空气污染指数;举例来说, addeventlistener ( )和removeeventlistener ( )提供一个途径追赶地位的事件,不使用对*性能。 此外,还有一个overridemimetype ( )的方法,使人们有可能迫使含量型,以文字/ xml的,所以它会被解析成dom的文件,即使服务器不报告等。 mozilla的具体方法时,可有用的,在某些情况下,但在大多数情况下,你应该远离他们,因为不是所有的浏览器都支持他们。
xmlhttprequest提供了大量的物业提供的资料或结果的请求。 大部分的财产都是自解释;你简单地阅读价值和行动。 上*物业事件处理器被用来分配到一个函数给他们。 名单的所有特性如下:
注
mozilla的重置事件处理器,如onreadystatechange ,请求后完成,所以你需要重新设置他们,如果你是多次呼吁与同一物体。
下表显示了可能的值为readystate变数。 它会返回一些代表现状的对象。 每项请求,将透过进展名单readystates
| readystate状态码 | 地位的xmlhttprequest对象 |
|---|---|
| ( 0 )未初始化 | 对象已开设,而且没有被初始化。 (公开法已不能被称为) 。 |
| ( 1 )装 | 对象已经建立的,但送法没有所谓。 |
| ( 2 )装 | 发送方法被称为不同,但其地位和头文件尚未得知。 |
| ( 3 )互动 | 一些数据已经收到。 呼唤responsebody和responsetext性能,在这个国家,以取得部分成果,将返回一个错误,因为地位和响应报头并非足额到位。 |
| ( 4 )完成 | 所有数据已收到,以及完整的数据,可在responsebody和responsetext性能。 |
该readystate变量和onreadystatechange事件处理器相连,在这样一种方式每一次readystate变变了, onreadystatechange事件处理器被调用。
Online: 564 users browsing the articles directory
|
|