- Getting Started
- edpx-mobile v1.0.0
- rebas
- rider
- saber-ajax
- saber-cookie
- saber-dom
- saber-emitter
- saber-env
- saber-fastbutton
- saber-firework
- saber-firework v2.0.0
- saber-firework v2.0.0-beta.2
- saber-firework v2.0.0-beta.1
- saber-firework v2.0.0-alpha.2
- saber-firework v2.0.0-alpha.1
- saber-firework v1.0.0
- saber-firework v0.4.2
- saber-firework v0.4.1
- saber-firework v0.4.0
- saber-firework v0.3.2
- saber-firework v0.3.1
- saber-firework v0.3.0
- saber-firework v0.2.6
- saber-firework v0.2.5
- saber-firework v0.2.4
- saber-firework v0.2.1
- saber-firework v0.2.0
- saber-firework v0.1.0-beta.4
- saber-firework v0.1.0-beta.3
- saber-firework v0.1.0-beta.1
- saber-geo v0.1.0
- saber-lang
- saber-log v0.1.0
- saber-matchmedia
- saber-mm
- saber-promise
- saber-promise v2.1.0
- saber-promise v2.0.0
- saber-promise v2.0.0-beta.1
- saber-promise v2.0.0-alpha.3
- saber-promise v2.0.0-alpha.2
- saber-promise v2.0.0-alpha.1
- saber-promise v1.0.2
- saber-promise v1.0.0
- saber-promise v0.1.2
- saber-promise v0.1.2-beta.3
- saber-promise v0.1.2-beta.2
- saber-promise v0.1.2-beta.1
- saber-promise v0.1.1
- saber-promise v0.1.0
- saber-rainbow
- saber-router
- saber-router v2.0.0
- saber-router v2.0.0-beta.1
- saber-router v2.0.0-alpha.2
- saber-router v2.0.0-alpha.1
- saber-router v1.0.0
- saber-router v0.2.4
- saber-router v0.2.3
- saber-router v0.2.2
- saber-router v0.2.1
- saber-router v0.2.0
- saber-router v0.1.0
- saber-router v0.1.0-beta.5
- saber-router v0.1.0-beta.4
- saber-router v0.1.0-beta.3
- saber-router v0.1.0-beta.2
- saber-router v0.1.0-beta.1
- saber-run
- saber-scroll
- saber-storage
- saber-string
- saber-tap
- saber-uri
- saber-viewport
- saber-viewport v1.1.0
- saber-viewport v1.0.0
- saber-viewport v0.2.12
- saber-viewport v0.2.11
- saber-viewport v0.2.10
- saber-viewport v0.2.9
- saber-viewport v0.2.8
- saber-viewport v0.2.6
- saber-viewport v0.2.5
- saber-viewport v0.2.1-beta.7
- saber-viewport v0.2.1-beta.6
- saber-viewport v0.2.1-beta.5
- saber-viewport v0.2.1-beta.4
- saber-viewport v0.2.1-beta.3
- saber-viewport v0.2.1-beta.2
- saber-viewport v0.2.1-beta.1
- saber-viewport v0.2.0
- saber-viewport v0.1.0
- saber-widget
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
saber-ajax v0.1.6
saber-ajax
适用于移动端、promise风格的ajax封装,支持XMLHttpRequest2
以吾王之名~
Usage
通过edp
引入模块
$ edp import 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); } );
API
get( url , query )
发起异步GET请求,返回Request
对象
url
{string}
请求地址query
{Object=}
查询条件,可选。会自动进行encodeURIComponent
处理
post( url, data )
发起异步POST请求,返回Request
对象
url
{string}
请求地址data
{Object|string=}
请求数据,可选。支持以下类型:{string}
不会对参数进行任何处理,需要注意自行进行encodeURIComponent
处理{Object}
会自动进行URL参数序列化并对各value
进行encodeURIComponent
处理,注意 暂时只支持单一层级序列化,不支持多层级(比如{date: {begin: '2012', end: '2013'}}
)
request( url, options )
发起请求,options
配置项参数为可选
options.method
{string=}
请求方式,默认为'GET'
options.data
{string|Object=}
请求参数,支持FormDataoptions.stringify
{boolean=}
是否自动序列化请求参数,默认为true
options.async
{boolean=}
是否异步请求,默认为true
options.headers
{Object=}
需要额外设置的请求头options.timeout
{number=)
请求超时时间,单位ms,注意 只有异步请求才有效options.username
{string=}
用户名options.password
{string=}
密码options.responseType
{string=}
返回的数据类型,默认为空。text
与arraybuffer
各浏览器的支持力度较好,其它选项使用前请多多思量~
on( event, fn )
注册全局事件
event
{string}
事件名称,支持以下事件'success'
请求成功事件,任意请求成功时触发'fail'
请求失败事件,任意请求失败时触发
fn
{Function(Requester,*)}
事件处理函数,触发时带有两个参数{Requester}
请求对应的Requester对象{*}
请求成功时是请求的返回结果,请求失败时是错误信息(参考request.then关于错误信息的描述)
可以通过注册全局事件配合requester.handleFail来提供默认的请求失败处理,比如:
var ajax = require('saber-ajax'); // 注册全局失败事件 ajax.on('fail', function (req, error) { // 如果当前的失败请求没有被处理过 // 则显示默认的错误提示 if (!req.handleFail) { alert('亲~请求失败啦'); } });
Requester
ajax.get
,ajax.post
,ajax.request
的返回参数,对XMLHttpReqeust
的封装,实现了Promise接口
.url
{string}
请求地址
.xhr
{XMLHttpRequest}
原始的XMLHttpRequest
对象
.handleSuccess
{boolean}
是否已处理请求成功的情况
.handleFail
{boolean}
是否已处理请求失败的情况
.then( onFulfill, onReject )
添加请求成功和失败的处理函数,请参考Promise.then
onFulfill
{Function({*})=}
请求成功处理,参数为请求的返回结果onReject
{Function({*})=}
请求失败处理,参数为错误信息,有四种取值:'error'
{string}
未知错误'timeout'
{string}
请求超时'abort'
{string}
请求中止HTTP Status Code
:{number}
其它情况为请求返回的HTTP状态码
.success( success )
添加请求成功处理,相当于.then(success)
success
{Function}
成功处理函数
.fail( fail )
添加请求失败处理 相当于.then(null, fail)
fail
{Function}
失败处理函数
.ensure( callback )
添加请求完成处理函数,不论请求是成功还是失败都会被调用,相当于.then(callback, callback)
callback
{Function}
完成处理函数
.abort()
中止请求
Test
启动测试服务器
$ node test/server.js
默认端口为8848
,可以通过参数修改:
$ node test/server.js 8080
访问http://localhost:8848/test/runner.html
===
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论