Skip to content

Latest commit

 

History

History
155 lines (100 loc) · 4.4 KB

readme.md

File metadata and controls

155 lines (100 loc) · 4.4 KB

build status #HTTPRequest v0.1.3#

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 or object - appends to the end of the url.
  • DATA - 'POST' or 'PUT' data string or object
  • 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 in processedCallback, newRequestCallback, also doesn't have to be unique. The defaultTag is untagged. You can override the default by HTTPRequest.defaultTag = 'TextHere';

##server side only options##

  • USERAGENT - string - Write your own user agent, default is node.js. This is a alias/shortcut insead of setting your own headers
  • HEADERS - 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, callback contents 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 headers
  • content - 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 and encode functions are from php.js
  • parseJSON 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.