npm i client-ajax --save
<script type="text/javascript" src="/ajax.js"></script>
var ajax = require('client-ajax')
// var ajax = require('client-ajax').setDefault()
var data = {a: "a", b: {b: "b"}, c: ["c"]}
// $.ajax
ajax({
url: "",
method: "POST",
data: data,
before: function () {},
success: function (body) {
console.log(body)
},
error: function (err) {
console.error(err)
},
complete: function () {}
})
// Promise
ajax({
url: "",
method: "POST",
data: data
}).then(function (body) {
console.log(body)
}, function (err) {
console.error(err)
})
// callback
ajax({
url: "",
method: "POST",
data: data
}, function (err, body) {
if (err) return console.error(err)
console.log(body)
})
// request payload
ajax({
url: "",
method: "POST",
data: data,
format: "json"
}).then(function (body) {
console.log(body)
}, function (err) {
console.log(err)
})
// request timeout
ajax({
url: "",
method: "POST",
data: data,
timeout: 3000
}).then(function (body) {
console.log(body)
}, function (err) {
console.log(err)
})
// return response
ajax({
url: "",
method: "POST",
data: data,
origin: true
}).then(function (resp) {
console.log(resp)
}, function (err) {
console.log(err)
})
// return html
ajax({
url: "",
type: "text"
}).then(function (body) {
console.log(body)
}, function (err) {
console.log(err)
})
// url template
ajax({url: "/:id", id: 1}) // /1
ajax({url: "/{id}", id: 1}) // /1
// querystring
ajax({url: "", data: data}) // ?a=a&b[b]=b&c[]=c
// set default options
ajax.setDefault({
format: "json", // set default format
body: true, // set default body returned
timeout: 3000 // set default timeout
})
// set error interceptor
ajax.setErrorInterceptor(function (err) {
console.error(err)
})
// simple
ajax.get("", data, function (err, body){})
ajax.post("", data).then(function (body) {}, function (err) {})
key | description | type | optional values | default value |
---|---|---|---|---|
url | request url | string | "" | |
method | request method | string | "GET","POST","PUT","HEAD","DELETE","PATCH" | "GET" |
async | is async | boolean | true,false | true |
data | request data | object | {} | |
format | data format | string | "form","json","formdata" | "form" |
timeout | request timeout | number | ||
origin | return response | boolean | true, false | false |
type | response type | string | "","arraybuffer","blob","document","json","text" | "json" |
headers | request headers | object | {} | |
before | before send | function | noop | |
success | request succeed | function | noop | |
error | make mistakes | function | noop | |
complete | request complete | function | noop |
The package should be used in broswer.
You can use it with broswerify or webpack, or simply copy source code with script tag to your project
If you can't make sure that Promise is supported in broswer, please use callback instead of Promise
client-ajax is released under the MIT license.
0.1.1 - initial
0.1.4 - add options.timeout
0.1.5 - default return body, replace options.body with options.origin