npm install nanoajaxnanoajax
========
An ajax library you need a microscope to see.
Weighs in at 620 bytes gzipped and minified. It is very basic, but contains support for cross-domain requests back to somewhat older browsers (See Compatibility).
- Passing a string url instead of a params object has been removed in v0.4.0
- The params object was introduced in v0.2.1, and is the only way to use POST requests.
- Passing a FormData object as the body will cause the Content Type header to not be set, as appropriate.
You can use npm or bower:
```
npm install --save nanoajax
``
bower install --save nanoajax
Can be used via browserify or webpack:
`javascript`
var nanoajax = require('nanoajax')
Or you can use the global script:
`html`
(You can build that script with: npm install -g uglify-js && ./make)
GET
`javascript`
nanoajax.ajax({url:'/some-get-url'}, function (code, responseText) { ... })
POST
`javascriptgetResponseHeader(header)
nanoajax.ajax({url: '/some-post-url', method: 'POST', body: 'post=content&args=yaknow'}, function (code, responseText, request) {
# code is response code
# responseText is response body as a string
# request is the xmlhttprequest, which has function`
})
``
var xhrRequest = nanoajax.ajax(params, callback)
Simple and small ajax function. Takes a parameters object and a callback function.
Parameters:
- url: string, requiredheaders
- : object of {header_name: header_value, ...}body
- :method
+ string (sets content type to 'application/x-www-form-urlencoded' if not set in headers)
+ FormData (doesn't set content type so that browser will set as appropriate)
- : 'GET', 'POST', etc. Defaults to 'GET' or 'POST' based on bodycors
- : If your using cross-origin, you will need this true for IE8-9 (to use the XDomainRequest object, also see Compatibility)
The following parameters are passed directly onto the request object:
IMPORTANT NOTE: The caller is responsible for compatibility checking.
- responseType: string, various compatability, see xhr docs for enum optionswithCredentials
- : boolean, IE10+, CORS onlytimeout
- : long, ms timeout, IE8+onprogress
- : callback, IE10+
Callback function prototype:
- statusCode: integer status or nullresponse
+ if request errors for some browsers (notably Chrome), this is 0 (and is "Error")response
- :responseType
+ if set and supported by browser, this is an object of some type (see docs)"Abort"
+ otherwise if request completed, this is the string text of the response
+ if request is aborted, this is "Timeout"
+ if request times out, this is "Error"
+ if request errors before completing (probably a CORS issue), this is
- request object
Returns the request object. So you can call .abort() or other methods
nanoajax works on android, iOS, IE8+, and all modern browsers, with some (_known_) caveats.
- Safari is conservative with cookies and will not allow cross-domain cookies to be set from domains that have never been visited by the user.
- IE8 and IE9 do not support cookies in cross-domain requests in this library. There are other solutions out there, but this library has chosen small over edge case compatibility.
MIT found in LICENSE` file.