HTTPRequest v0.1.1#
A simple yet powerful HTTP request library inspired by jQuery and LSL written in Javascript for client(framework independent) and server(Node.js) Javascript.
Setup##
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.