1 Star 0 Fork 0

w-wl / dist_ajax

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

ajax

浏览器端加载远程数据的ajax实现,支持jsonp,支持FormData,支持application/json, 支持自定义post body体。

依赖

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

下载

使用

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

示例1 GET请求

import ajax from 'wwl-ajax';

//实际请求url: http://127.0.0.1/?name=wwl%26,   
//如果设置 {encodeExclude:true}或{encodeExclude:['name']}; 则为http://127.0.0.1/?name=wwl&
var promise = ajax({
    url: 'http://127.0.0.1',
    data: {name: "wwl&"}
});

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

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 }
});

示例2 jsonp请求


//实际请求url: http://127.0.0.1?name=wwl&callback=__jsonp__1
var promise = ajax({
        url: 'http://127.0.0.1',
        method: 'JSONP',
        data: {name: "wwl"},
        cbParam: 'callback',     //可忽略,默认为callback
        cbName: '__jsonp__1',    //可忽略,默认为__jsonp__${count}
    });

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

promise.then(function (res) {
    console.log(res); //{ data:'data from server', status:200, statusText:'ok'  }
}, function (res) {
    console.log(res); //{ data:'', status:400, statusText:'timeout'}
});

示例3 post请求 (默认,urlencoded类型)

//实际请求url: http://127.0.0.1/?id=1
//http body为: name=wwl&sex=male
    ajax({
        url: 'http://127.0.0.1',
        method: 'POST',
        params: {id: '1'},
        data: {name: 'wwl',sex:'male'}
    });

示例4 post请求 (multipart/form-data类型)

    var data=new FormData();
    data.append('file',document.querySelector('[input=file]').files[0]);
    data.append('name','wwl');
    ajax({
        url: 'http://127.0.0.1',
        method: 'POST',
        data: data
    });

 ajax({
        url: 'http://127.0.0.1',
        method: 'POST',
        data: {
            name: 'wwl',
            file: document.querySelector('[input=file]').files[0]
        },
        contentType:'formdata'
    });

示例5 post请求(application/json类型)

//http body为:  {"name":"wwl"}
    ajax({
        url: 'http://127.0.0.1',
        method: 'POST',
        data: {name: 'wwl'},
        contentType:'json'
    });

示例6 直接发送数据

    ajax({
        url: 'http://127.0.0.1',
        method: 'POST',
        data: '123'
    });

    ajax({
        url: 'http://127.0.0.1',
        method: 'POST',
        data: document.querySelector('[input=file]').files[0]
    });

配置参数

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

url

<string>     require
请求的url

method

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

data

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

params

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

headers

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

timeout

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

withCredentials

<boolean>
设置withCredentials 

contentType

<string>
有效值为: "urlencoded","formdata","json",默认为"urlencoded"。
当method为post时,且data参数为普通对象时,
则默认使用application/x-www-form-urlencoded的形式;
如果设置为"formdata", 则使用multipart/form-data的形式;
如果设置为"json", 则使用application/json的形式。

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>
针对jsonp的参数,设置jsonp的字符编码。
默认为utf-8.

返回值

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

promise.abort

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

promise的回调参数

{data,status,statusText,xhr}

data

请求的返回值。

status

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

statusText

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

xhr

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

注意

如果传入的参数值为null或undefined,则会按照缺省处理。


import ajax from 'wwl-ajax';

var url = 'http://127.0.0.1';

ajax({url:url,method:undefined});
//等效于 ajax({ url:url });

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/w-wl/dist_ajax.git
git@gitee.com:w-wl/dist_ajax.git
w-wl
dist_ajax
dist_ajax
master

搜索帮助