A simple yet powerful HTTP request library inspired by jQuery and LSL written in Javascript for client(framework independent) and server(Node.js) Javascript.
To set up HTTPRequest on your Node.js server use npm(case sensitive package name).
npm install HTTPRequest
If you want to use HTTPRequest on the client-side (browser), just include HTTPRequest.js into your page.
<script type='text/javascript' src='HTTPRequest.js'></script>
##Example## First, you have to require the HTTPRequest module (if you're using it client-side, this isn't necessary).
var HTTPRequest = require('HTTPRequest');
HTTPRequest.get('get_test.php', function(status, headers, content)
{
console.log(status, headers, content);
});
Recaptcha - A small reCAPTCHA module I wrote that depends on this module.
##request##
request(url, parameters, callback)
A lower level function, but I hope you never really need to use it as post
, get
is a wrapper around it.
##stop requests##
stopID(id)
stopTag(tag)
stopAll()
When a request is stopped, the callback isn't called for the request.
##post##
post(url, data, callback, options)
A url, data(object, can be empty also {}
), callback are required.
options is not required, but it's a object.
##get##
get(url, callback, options)
url and callback are required.
options is not required, but it's a object.
##delete##
del(url, callback, options)
same as get
##put##
put(url, data, callback, options)
same as post
##encode##
encode(url)
takes a url and escapes it, then returns it.
##decode##
encode(url)
takes a decodeed url and Unencode's it, then returns it.
##options##
*option names are NOT case sensitive.
QUERY
-string
orobject
- appends to the end of theurl
.DATA
-'POST'
or'PUT'
datastring
orobject
DATATYPE
- the expected content type. See content type section for more details. The value of this isn't case sensitive.TAG
- a tag to be used inprocessedCallback
,newRequestCallback
, also doesn't have to be unique. ThedefaultTag
isuntagged
. You can override the default byHTTPRequest.defaultTag = 'TextHere';
##server side only options##
USERAGENT
- string - Write your own user agent, default isnode.js
. This is a alias/shortcut insead of setting your own headersHEADERS
- An object containing your own defined headers.
##parameters## Everything as options, but also:
METHOD
- string - 'GET'
, 'POST'
, 'PUT'
and 'DELETE'
, default is 'GET'
##DATATYPE##
DATATYPE
can be set as the type of content you expected from the server.
JSON
- when set as json, callbackcontents
will be a object of the JSON when valid JSON,null
when invalid JSON.
##callback##
status, headers, content
status
- is an HTTP status code (like 404 or 200)headers
- is an object with the respone http headerscontent
- contains the requests response.
##Ajax stop and start callbacks
function ajaxLoaderStart()
{
console.log('Started');
}
HTTPRequest.setAjaxStart(ajaxLoaderStart); //this call back is called when no pending HTTP requests exists.
function ajaxLoaderStop()
{
console.log('Stopped');
}
HTTPRequest.setAjaxStop(ajaxLoaderStop); //this get's called when all the pending HTTP requests are finished.
These are great for providing a loading spinner on the page.
##Processed ID Callback
function processedID(tag, id)
{
console.log('processed: ' + tag + ' , ' + id);
}
HTTPRequest.setProcessedCallback(processedID);
##New Request Callback
function newRequestID(tag, id)
{
console.log('new id: ' + tag + ' , ' + id);
}
HTTPRequest.setnewRequestCallback(newRequestID);
##credits##
trim
,encode
andencode
functions are from php.jsparseJSON
function is from jQuery v1.7.2, but does not require jQuery as it's inclued in the same namespace.- Major thanks to node-XMLHttpRequest for giving us a XMLHttpRequest Object, that really helps make this both client and server side.