javascript ajax helper.


Keywords
ajax, wwl, wangweilin, w-wl
License
ISC
Install
npm install wwl-ajax@1.1.21

Documentation

ajax

浏览器端加载远程数据的ajax实现,支持jsonp。

依赖

代码依赖Promise对象,请确保在加载ajax前已支持Promise。

下载

  • npm install --save wwl-ajax
  • <script src="https://raw.githubusercontent.com/w-wl/ajax_dist/master/index.js"></script>

使用

  • amd, 例如: define([],"./js/wwl-ajax.js");
  • commonJs, 例如: import ajax from 'wwl-ajax' 或 var ajax=require('wwl-ajax');
  • 当页面不支持amd和commonJs时,会暴露出window.ajax函数。

示例

import ajax from 'wwl-ajax';

var config={    //配置参数
    url: "http://127.0.0.1",
    method:"post",
    data:{ name:"w w l" },
    param:{ id:5 }
};

//实际请求url: http://127.0.0.1?id=5
//实际post数据: name=w%20w%20l  //如果设置 encodeExclude=['name'];则为 name=w w l;
var promise=ajax(config);
promise.then(function(res){
        console.log(res); //{ data:'data from server', status:200, statusText:'OK' , xhr: XMLHttpRequest }
    },function(res){
        console.log(res); //{ data:'', status:404, statusText:'Not Found' , xhr: XMLHttpRequest }
    });

typeof promise.abort === 'function';    //true

配置参数

{url,method,data,params,headers,timeout,withCredentials,transformRequest,transformResponse,encodeExclude,cbParam,cbName,charset}

url

<string>     require
请求的url

method

<string>    require
默认为GET,支持JSONP。不区分大小写。

data

<any>      
请求数据。
支持FormData,File,Blob,String,Object。
如果为GET或JSONP,等效于params。

params

<any>
如果是对象,转换为&key=value的形式添加到url,
如果是字符串,转换为&params的形式添加到url。 

headers

<Object>
 默认为{},设置请求头。

timeout

<number>
设置超时时间。jsonp默认30秒超时,其他情况下默认无超时时间。

withCredentials

<boolean>
设置withCredentials 

transformRequest

<function>
转换请求数据data。
回调签名: callback(data,config)
data: 当前请求对象。
config: 传入ajax()方法的配置对象。

transformResponse

<function>
转换返回结果。
回调签名: callback(data)
data: 请求的返回结果。

encodeExclude

<boolean|Array>
默认情况情况下,会通过encodeURIComponent,对params参数进行转义。
如果data不是FromData、File、Blob、Buffer类型,也会对data进行转义。
如果设置encodeExclude为true,则取消转义。
如果设置encodeExclude为数组,则可对特定的键取消转义。

cbParam

<string>
针对jsonp的参数,回调的参数名,默认为callback。

cbName

<string>
针对jsonp的参数,回调的函数名,默认为 __jsonp__${cnt}。
即默认情况下,第一个jsonp的请求参数为: ?callback=__jsonp__1

charset

<string>
默认为utf-8.
设置jsonp的字符编码。

返回值

返回带有abort()方法的Promise对象。

promise.abort

取消当前请求。 如果在请求完成后调用abort方法,则无任何效果。 如果在请求完成前调用,则不会触发promise的回调。

promise的回调参数

{data,status,statusText,xhr}

data

请求的返回值。

status

<number>
请求的返回状态码。

statusText

<string>
请求的返回状态的字符串。

xhr

<XMLHttpRequest>
内部的XMLHttpRequest对象,如果jsonp,则该值为undefined。