Merge branch ‘release/2.1.0’
适用于移动端、Promise 风格的 ajax 封装,支持 XMLHttpRequest2,兼容 node 环境
以吾王之名~
通过 edp 引入模块:
$ edp import saber-ajax
或者在 node 环境下使用 npm 引入模块:
npm
$ npm install saber-ajax --save
var ajax = require('saber-ajax'); var request = ajax.get(url); request.then( // 请求完成 // data为responseText function (data) { renderData(data); }, // 请求失败 // error参数可能为以下四种情况 // * 请求超时: 'timeout' // * 请求中止: 'abort' // * 未知错误: 'error' // * 其它情况: HTTP Status Code function (error) { showError(error); } ); // 支持 ejson 格式的异步交互 ajax = require('saber-ajax').ejson;
发起异步GET请求
{string}
{Object=}
encodeURIComponent
{Requester}
发起异步POST请求
{Object|string=}
{Object}
{date: {begin: '2012', end: '2013'}}
发起请求,如果不做设置默认为 GET 异步请求
GET
{string=}
'GET'
{string|Object=}
{boolean=}
true
{number=)
text
arraybuffer
全局配置
注册全局事件
{Function}
可以通过注册全局事件配合 requester.handleFail 来提供默认的请求失败处理,比如:
var ajax = require('saber-ajax'); // 注册全局失败事件 ajax.on('fail', function (req, error) { // 如果当前的失败请求没有被处理过 // 则显示默认的错误提示 if (!req.handleFail) { alert('亲~请求失败啦'); } });
全局请求成功事件,任意请求成功时触发
{*}
全局请求失败事件,任意请求失败时触发
ajax.get
ajax.post
ajax.request
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
saber-ajax
适用于移动端、Promise 风格的 ajax 封装,支持 XMLHttpRequest2,兼容 node 环境
以吾王之名~Installation
通过 edp 引入模块:
或者在 node 环境下使用
npm引入模块:Usage
API
Methods
get(url[, query])
发起异步GET请求
{string}请求地址{Object=}查询条件,会自动进行encodeURIComponent处理{Requester}请求对象 Requesterpost(url[, data])
发起异步POST请求
{string}请求地址{Object|string=}请求数据,可选。使用{Object}类型时请注意:暂时只支持单一层级序列化,不支持多层级(比如{date: {begin: '2012', end: '2013'}}){Requester}请求对象 Requesterrequest(url[, options])
发起请求,如果不做设置默认为
GET异步请求{string}请求地址{Object=}配置参数{string=}请求方式,默认为'GET'{string|Object=}请求参数,支持 FormData{boolean=}是否自动序列化请求参数,默认为true{boolean=}是否异步请求,默认为true,出于用户体验的考虑新版的浏览器在主线程中都不再支持发起同步请求,请慎重使用此参数{Object=}需要额外设置的请求头{number=)请求超时时间,单位ms,注意 只有异步请求才有效{string=}用户名{string=}密码{string=}返回的 数据类型,默认为空。text与arraybuffer各浏览器的支持力度较好,其它选项使用前请多多思量~config(options)
全局配置
{Object}配置项{string=}host,默认为空{string=}请求路径前缀,默认为空{Object=}请求头信息,默认为空{Object=}请求管理对象配置信息,只针对 node 平台配置有效,具体配置项请参考 http.Agent 的初始化说明on(event, fn)
注册全局事件
{string}事件名称,具体支持的事件请参照事件说明{Function}事件处理函数可以通过注册全局事件配合 requester.handleFail 来提供默认的请求失败处理,比如:
Events
success
全局请求成功事件,任意请求成功时触发
{Requester}请求对象 Requester{*}请求返回的内容fail
全局请求失败事件,任意请求失败时触发
{Requester}请求对象 Requester{*}错误信息(参考 request.then 关于错误信息的描述)Classes
ajax.get,ajax.post,ajax.request等方法的返回参数,对异步请求对象的封装,实现了 Promise 接口