lil'-http
Tiny, lightweight, full featured HTTP client for the browser.
Name | http |
Version | 0.1.17 |
Size | 3 KB / 1 KB (gzipped) |
Environment | Browser |
Features
- Simple fully configurable API
- Support any HTTP verb
- Built-in error handling
- Binary response handling support
- Content-Type autodiscovery
- Support auth credentials
- Request progress status report
- Support passing custom headers
- Transparent support for CORS (in IE)
- Simple request state handling based on callback
- Transparent payload JSON serializer
Installation
Via Bower
bower install lil-http
Via Component
component install lil-js/http
Or loading the script remotely
Environments
- Chrome >= 5
- Firefox >= 3
- Safari >= 5
- Opera >= 10
- IE >= 9
Usage
You could fetch de module via require()
if it's available.
Otherwise, global fallback will be used, exposed via lil.http
Sample GET request
lilhttp
Sample POST request
lilhttp
Config options
- url
string
- Server request URL - data
mixed
- Payload data to send as body request. See MDN for more information - params
object
- Map of key-value query string params - headers
object
- Map of strings representing HTTP headers to send to the server - timeout
number
- Request maximum timeout in milliseconds. Default to 30 seconds - auth
object
- Authentication credentials to the server. Object must have theuser
andpassword
properties withstring
values - withCredentials
boolean
- Whether to set the withCredentials flag on the XHR object. See MDN for more information - method
string
- Request HTTP method. Default toGET
- responseType
string
- Define how to handle the response data. Allowed values are:text
,arraybuffer
,blob
ordocument
Response/error object
- data
mixed
- Body response. If the MIME type isJSON-compatible
, it will be transparently parsed - status
number
- HTTP response status code - headers
object
- Response headers - xhr
object
- Original XHR instance - error
mixed
- Error info, usually anError
instance (in case that an error happens)
API
http(url, options, cb, [ progressCb ])
http.get(url, options, cb, [ progressCb ])
http.post(url, options, cb, [ progressCb ])
http.put(url, options, cb, [ progressCb ])
http.delete(url, options, cb, [ progressCb ])
http.patch(url, options, cb, [ progressCb ])
http.head(url, options, cb, [ progressCb ])
http.defaults
Type: object
Default client config object
http.defaultContent
Type: string
Value: text/plain
Default Content-Type
request header value
http.VERSION
Contributing
Wanna help? Cool! It will be appreciated :)
You must add new test cases for any new feature or refactor you do, always following the same design/code patterns that already exist
Development
Only node.js is required for development
Clone the repository
$ git clone https://github.com/lil-js/http.git && cd http
Install dependencies
$ npm install
Generate browser bundle source
$ make browser
Run tests
$ make test
License
MIT © Tomas Aparicio