Nocturnal Parakeet Monitor

    node-http-xhr

    1.3.4 • Public • Published

    node-http-xhr

    npm

    Build Status

    An implementation of XMLHttpRequest for node.js using the http.request API.

    Motivation

    This package was written to provide the XMLHttpRequest API to test browser code that is being tested in a node.js environment.

    Installation

    npm install --save node-http-xhr

    Usage

    // Standalone usage
    var XMLHttpRequest = require('node-http-xhr');
     
    // Usage as global XHR constructor
    global.XMLHttpRequest = require('node-http-xhr');
     
     
    var req = new XMLHttpRequest();
     
    // Event handlers via .on${event} properties:
    req.onreadystatechange = function() {
      console.log('readyState: ' + req.readyState);
    };
     
    // or using .addEventListener(event, handler):
    req.addEventListener('load', function() {
      console.log('response: ' + req.response);
    });
     
    req.open('GET', 'https://github.com/aspyrx', true);
    req.send();

    Note about browser environments

    If you use a bundler like browserify or webpack that follows the browser field in package.json, the module will simply export window.XMLHttpRequest. This is provided for sake of compatibility.

    Development

    Documentation

    To generate documentation:

    npm run doc

    The html documentation will be placed in doc/.

    Tests

    npm test

    Known issues

    Currently, some features are lacking:

    • Some ProgressAPI events (loadstart, loadend, progress)
    • responseType values other than '' or 'text' and corresponding parsing
      • As a result of the above, overrideMimeType() isn't very useful
    • setRequestHeader() doesn't check for forbidden headers.
    • withCredentials is defined as an instance property, but doesn't do anything since there's no use case for CORS-like requests in node.js right now.

    Install

    npm i node-http-xhr

    DownloadsWeekly Downloads

    5,039

    Version

    1.3.4

    License

    ISC

    Last publish

    Collaborators

    • aspyrx