> Synchronous and asynchronous XMLHttpRequest for Node [![Build](https://github.com/Mogztter/unxhr/workflows/Build/badge.svg)](https://github.com/Mogztter/unxhr/actions?query=workflow%3ABuild) [![install size](https://packagephobia.now.sh/badge?p=unxhr)](https://packagephobia.now.sh/result?p=unxhr) [![npm version](https://img.shields.io/npm/v/unxhr)](https://www.npmjs.com/package/unxhr) _unxhr_ is a tiny wrapper of the built-in `http` client to emulate the browser `XMLHttpRequest` object. **Important:** This library is a fork of [XMLHttpRequest](https://github.com/driverdan/node-XMLHttpRequest). It was created to be compliant with [XMLHttpRequest Level 2](http://www.w3.org/TR/XMLHttpRequest2/). ## Highlights - Dependency free - Asynchronous and synchronous requests - `GET`, `POST`, `PUT`, and `DELETE` requests - Binary data using JavaScript typed arrays - Follows redirects - Handles `file://` protocol ## Usage Here's how to include the module in your project and use as the browser-based XHR object. ```js const XMLHttpRequest = require('unxhr').XMLHttpRequest const xhr = new XMLHttpRequest() ``` ## Known Issues / Missing Features For a list of open issues or to report your own visit the [github issues page](https://github.com/Mogztter/unxhr/issues). * Local file access may have unexpected results for non-UTF8 files * Synchronous requests don't set headers properly * Synchronous requests freeze node while waiting for response (But that's what you want, right? Stick with async!). * Some events are missing, such as abort * Cookies aren't persisted between requests * Missing XML support ## License MIT license. See LICENSE for full details.