Skip to content

Instantly share code, notes, and snippets.

@kidager
Forked from matthewp/gist:3099268
Last active August 29, 2015 14:18

Revisions

  1. kidager renamed this gist May 3, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. @matthewpblog matthewpblog revised this gist Jul 13, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@ function xhr(options) {
    }

    if([200,304].indexOf(req.status) === -1) {
    deferred.reject(new Error('Server responded with a status of ' + req.status);
    deferred.reject(new Error('Server responded with a status of ' + req.status));
    } else {
    deferred.resolve(e.target.result);
    }
  3. @matthewpblog matthewpblog revised this gist Jul 13, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@ function xhr(options) {
    }

    if([200,304].indexOf(req.status) === -1) {
    deferred.reject(req.status);
    deferred.reject(new Error('Server responded with a status of ' + req.status);
    } else {
    deferred.resolve(e.target.result);
    }
  4. @matthewpblog matthewpblog revised this gist Jul 12, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -21,7 +21,7 @@ function xhr(options) {
    }
    };

    req.send(options.data);
    req.send(options.data || void 0);

    return deferred.promise;
    }
  5. @matthewpblog matthewpblog revised this gist Jul 12, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    function xhr(options) {
    var deferred = Q.defer(),
    req = new XMLHttpRequest();
    req = new XMLHttpRequest();

    req.open(options.method || 'GET', options.url, true);

  6. @matthewpblog matthewpblog created this gist Jul 12, 2012.
    27 changes: 27 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    function xhr(options) {
    var deferred = Q.defer(),
    req = new XMLHttpRequest();

    req.open(options.method || 'GET', options.url, true);

    // Set request headers if provided.
    Object.keys(options.headers || {}).forEach(function (key) {
    req.setRequestHeader(key, options.headers[key]);
    });

    req.onreadystatechange = function(e) {
    if(req.readyState !== 4) {
    return;
    }

    if([200,304].indexOf(req.status) === -1) {
    deferred.reject(req.status);
    } else {
    deferred.resolve(e.target.result);
    }
    };

    req.send(options.data);

    return deferred.promise;
    }