An implementation of XMLHttpRequest for node.js using
the http.request API.
This package was written to provide the XMLHttpRequest API to test browser
code that is being tested in a node.js environment.
npm install --save node-http-xhr// Standalone usagevarXMLHttpRequest=require('node-http-xhr');// Usage as global XHR constructorglobal.XMLHttpRequest=require('node-http-xhr');varreq=newXMLHttpRequest();// 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();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.
To generate documentation:
npm run docThe html documentation will be placed in doc/.
npm testCurrently, some features are lacking:
- Some ProgressAPI events (
loadstart,loadend,progress) responseTypevalues other than''or'text'and corresponding parsing- As a result of the above,
overrideMimeType()isn't very useful
- As a result of the above,
setRequestHeader()doesn't check for forbidden headers.withCredentialsis defined as an instance property, but doesn't do anything since there's no use case for CORS-like requests innode.jsright now.
