1.0.0 • Published 9 years ago

requests.js v1.0.0

Weekly downloads
6
License
MIT
Repository
github
Last release
9 years ago

requests.js

Asynchronous HTTP request library. Tiny wrapper for XMLHttpRequest.

Usage

HTML:

Requests.request("GET", "/posts.html", {
  success: function(response) {
    document.body.innerHTML = response;
  }
});

JSON:

Requests.request("GET", "/posts.json", {
  success: function(response) {
    console.log(JSON.parse(response));
  }
});

JSON (with dataType):

Requests.request("GET", "/posts.json", {
  dataType: "json",
  success: function(json) {
    console.log(json);
  }
});

Query String:

// GET http://localhost/posts?foo=bar
Requests.request("GET", "/posts", { params: { foo: "bar" }});

Post parameters:

Requests.request("POST", "/posts", { data: { foo: "bar" }});

Post form:

var form = document.getElementById("post-form");

Requests.request("POST", "/posts", { data: new FormData(form) });

Post JSON:

Requests.request("POST", "/posts.json", {
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  data: JSON.stringify({
    foo: "bar"
  })
});

File Upload:

var input = form.querySelector("[type=file]");

var form = new FormData();
form.append("post[file]", input.files[0]);
form.append("post[title]", "New post");

Requests.request("POST", "/posts", { data: form });

Defaults

var csrfToken = document.querySelector("meta[name=csrf_token]").content;

Requests.defaults.headers["X-CSRF-Token"] = csrfToken;

Full API:

Requests.defaults = {
  headers: {},
  params: null,
  data: null,
  dataType: "", /* arraybuffer, blob, document, json, text */
  csrf: true, /* sets CSRF token from <meta name="csrf_token" content="token" />*/
  success: function(response, xhr) {}, /* 20x status code */
  error: function(response, xhr) {}    /* ! 20x status code */
}

Requests.request("GET", "/url", options);

Browser Support

ChromeFirefoxIEOperaSafari
Latest ✔Latest ✔10+ ✔Latest ✔6.1+ ✔