ActionScript
TypeScript
JavaScript

Http数据通信XMLHttpRequest 

发布时间:2017-01-10

   说到html5和后端的交互不得不说的是XMLHttpRequest 。什么是XMLHttpRequest ?

XmlHttpRequest中文可以解释为可扩展超文本传输请求。Xml可扩展标记语言,Http超文本传输协议,Request请求。XMLHttpRequest对象可以在不向服务器提交整个页面的情况下,实现局部更新网页。当页面全部加载完毕后,客户端通过该对象向服务器请求数据,服务器端接受数据并处理后,向客户端反馈数据。 XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容。尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。



 数据请求


  在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

  • GET - 从指定的资源请求数据。

  • POST - 向指定的资源提交要被处理的数据

    (1) GET方法查询字符串(名称/值对)是在 GET 请求的 URL 中发送的,格式为:

http://www.layabox.com/?a=value1&b=value2&c=value3;

有关 GET 请求的其他一些注释:

  • GET 请求可被缓存

  • GET 请求保留在浏览器历史记录中

  • GET 请求可被收藏为书签

  • GET 请求不应在处理敏感数据时使用

  • GET 请求有长度限制

  • GET 请求只应当用于取回数据

(2) POST查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的,他是通过XMLHttpRequest的send方法发送出去。

有关 POST 请求的其他一些注释:

  • POST 请求不会被缓存

  • POST 请求不会保留在浏览器历史记录中

  • POST 不能被收藏为书签

  • POST 请求对数据长度没有要求

blob.png

那么layaAir中怎么使用它呢?很简单,LayaAir中对他进行了简单的封装,对应的类就是HttpRequest这个类。他继承EventDispatcher,所以具有事件派发器的功能。

下面通过例子来简单讲解他的使用。

首先是GET方法请求。

blob.png

这里请求方法是get 数据类型是text文本类型,请求的返回数据在HttpRequest 的data属性中。

下面看下POST方法

blob.png

POST方法的请求和GET请求传递的参数是不同的。首先GET方法参数在url中,POST方法是在send方法的第二个参数中,当然POST方法更强大的一点是可以是二进制,本例子用的是text文本类型。开发者可以自行试试二进制,相应的类型为"arraybuffer"。