返回介绍

saber-ajax v0.1.4

发布于 2023-10-15 20:10:06 字数 4077 浏览 0 评论 0 收藏 0

saber-ajax Build Status

适用于移动端、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'
    // * 其它情况: HTTP Status Code
    function (error) {
        showError(error);
    }
);

API

get( url )

发起异步GET请求,返回Request对象

post( url, data )

发起异步POST请求,返回Request对象

data 请求的参数,可以为以下类型:

  • string 不会对参数进行任何处理,需要注意自行进行encodeURIComponent处理
  • Object 会自动进行URL参数序列化并对各value进行encodeURIComponent处理,注意 暂时只支持单一层级序列化,不支持多层级,比如{date: {begin: '2012', end: '2013'}}

request( url, options )

发起请求,options配置项参数为可选

  • options.method string 请求方式,默认为'GET'
  • options.data string|Object 请求参数,支持FormData
  • options.stringify boolean 是否自动序列化请求参数,默认为true
  • options.async boolean 是否异步请求,默认为true
  • options.headers Object 需要额外设置的请求头
  • options.timeout number 请求超时时间,单位ms,只有异步请求才有效
  • options.username string 用户名
  • options.password string 密码
  • options.responseType string 返回的数据类型,默认为空。textarraybuffer各浏览器的支持力度较好,其它选项使用前请多多思量~

Requester

ajax.getajax.postajax.request的返回参数,对XMLHttpReqeust的封装,实现了Promise接口

Requester.url

请求地址

Requester.getXHR()

获取原始的XMLHttpRequest对象

Requester.then( onFulfill, onReject )

请参考Promise.then

  • onFulfill Function 请求成功处理
  • onReject Function 请求失败处理 第一个参数有三种取值:

  • 'timeout' string 请求超时

  • 'abort' string 请求中止
  • HTTP Status Code: number 其它情况为响应请求的HTTP状态码

Requester.success( success )

  • success Function 请求成功处理 相当于.then(success)

Requester.fail( fail )

  • fail Function 请求失败处理 相当于.then(null, fail)

Requester.ensure( callback )

  • callback Function 请求完成处理,不论请求是否成功,相当于.then(callback, callback)

Requester.abort()

中止请求

Test

启动测试服务器

$ node test/server.js

默认端口为8848,可以通过参数修改:

$ node test/server.js 8080

访问http://localhost:8848/test/runner.html

===

Saber

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文