# net

XMLHttpRequest模块管理网络请求，与标准HTML中的XMLHttpRequest用途一致，差别在于前者可以进行跨域访问。通过plus.net可获取网络请求管理对象。

## 对象：

- XMLHttpRequest: 跨域网络请求对象
- ProgressEvent: HTTP请求进度事件

## 回调方法：

- XhrStateChangeCallback: 网络请求状态变化的回调函数
- XhrProgressEventCallback: 网络请求进度事件的回调函数

## 权限：

5+功能模块（permissions）

    {
    // ...
    "permissions":{
    	// ...
    	"XMLHttpRequest": {
    		"description": "跨域网络连接"
    	}
    }
    }

# XMLHttpRequest

跨域网络请求对象

## 构造：

- XMLHttpRequest(): 创建一个XMLHttpRequest 对象，对象创建时不触发任何时间和网络请求，需和open，send方法配合使用。

## 属性：

- readyState: HTTP 请求的状态
- response: 请求从服务器接收到的响应数据
- responseText: 请求从服务器接收到的响应数据（字符串数据）
- responseType: 请求响应数据response的类型
- responseXML: 请求响应的Document对象
- status: 服务器返回的HTTP状态代码
- statusText: 服务器返回的HTTP状态描述
- timeout: 请求服务器的超时时间，单位为毫秒（ms）
- withCredentials: 是否支持跨域请求

## 方法：

- abort: 取消当前响应，关闭连接并且结束任何未决的网络活动
- getAllResponseHeaders: 获取HTTP响应头部信息
- getResponseHeader: 获取指定的HTTP响应头部的值
- open: 初始化HTTP请求参数，例如URL和HTTP方法，但是并不发送请求
- overrideMimeType: 重写服务器返回的MIME类型
- send: 发送HTTP请求
- setRequestHeader: 指定一个HTTP请求的Header

## 事件：

- onreadystatechange: 网络请求状态发生变化事件
- onloadstart: 网络请求开始事件
- onprogress: 网络请求传输数据事件
- onabort: 网络请求取消事件
- onerror: 网络请求错误事件
- onload: 网络请求成功事件
- ontimeout: 网络请求超时事件
- onloadend: 网络请求结束事件

# ProgressEvent

HTTP请求进度事件

    interface ProgressEvent : Event {
        readonly attribute XMLHttpRequest target;
        readonly attribute Boolean lengthComputable;
        readonly attribute Number loaded;
        readonly attribute Number total;
    };

## 属性：

- target: (XMLHttpRequest 类型 )事件的目标对象

  通知HTTP请求进度事件的XMLHttpRequest对象。

- lengthComputable: (Number 类型 )进度信息是否可计算

  HTTP请求进度信息是否有效，如果HTTP请求头中包含Content-Length头信息则为true，否则为false。

- loaded: (XMLHttpRequest 类型 )当前已经接收到的数据长度

  HTTP请求接收到的数据长度，单位为字节。

- total: (XMLHttpRequest 类型 )总数据长度

  HTTP请求返回的总数据长度，单位为字节。 如果无法获取则设置为0。

# XhrStateChangeCallback

网络请求状态变化的回调函数

    void onSuccess() {
    	// State changed code.
    }

## 参数：

无

## 返回值：

void : 无

# XhrProgressEventCallback

网络请求进度事件的回调函数

    void onProgressEvent( ProgressEvent event ) {
    	// Progress changed code.
    }

## 参数：

- event: ( ProgressEvent ) 必选 HTTP请求进度事件

## 返回值：

void : 无