Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

dead-simple-ajax Build Status

dead-simple-ajax does three things:

  1. Provides promise-enabled Ajax for CommonJS environments (Node JS/Browserify)
  2. Automatically deserializes responses as JSON, unless you tell it not to
  3. Allows custom request modification via a callback


The entire codebase is located in index.js. You can either copy that file directly into your project (and npm install -S xmlhttprequest if you're using Node), or use the NPM module (npm install -S dead-simple-ajax).


The API consists of four methods, each of which returns a Promise:

  • get(url, payload, options)
  • post(url, payload, options)
  • put(url, payload, options)
  • del(url, payload, options)

url: string

The URL to which the request will be sent.

payload: object

An object that will be turned into a query string in the case of get, or JSON-serialized into the request payload for post, put, and del.

options: object

An object that looks like the following:

    onBeforeSend: function (request, verb, url) {
		// Modify the request object.
	returnRawResponse: true

onBeforeSend is called when the XMLHttpRequest object is constructed, just before it is sent, and allows you to modify the request. If you need to set HTTP headers, this is where you do it. The method takes three arguments:

  • request contains the raw XMLHttpRequest object.
  • verb contains the string of the HTTP verb being used ("GET", "POST", etc.).
  • url contains the url to which the request is being sent.

returnRawResponse, when true, prevents the response from being deserialized as JSON into a JavaScript object.


var ajax = require("dead-simple-ajax");

// Make a GET request to
ajax.get("", {foo: "bar"})
	.then(function (response) {
		// Do something.
	}, function (error) {
		// Handle the error.

// Make a POST request to with a JSON payload of `{foo: "bar"}`."", {foo: "bar"})
	.then(function (response) {
		// Do something.
	}, function (error) {
		// Handle the error.

// Make a PUT request to with a JSON payload of `{foo: "bar"}`,
// and set the Authorization header before sending.
function setHeader(request, verb, url) {
	request.setRequestHeader("Authorization", "supersecretvalue");
}"", {foo: "bar"}, {onBeforeSend: setHeader})
	.then(function (response) {
		// Do something.
	}, function (error) {
		// Handle the error.

// Make a DELETE request to and do not deserialize the response."", null, {returnRawResponse: true})
	.then(function (response) {
		// Do something.
	}, function (error) {
		// Handle the error.


Dead simple Ajax for CommonJS environments




No releases published


No packages published