|
|
||
|---|---|---|
| .. | ||
| axios.html | ||
| fetch.html | ||
| Makefile | ||
| package.json | ||
| README.md | ||
| server.js | ||
| superagent.html | ||
| xhr.html | ||
| xlsx.full.min.js | ||
XMLHttpRequest and Friends
XMLHttpRequest and fetch browser APIs enable binary data transfer between
web browser clients and web servers. Since this library works in web browsers,
server conversion work can be offloaded to the client! This demo shows a few
common scenarios involving browser APIs and popular wrapper libraries.
Sample Server
The server.js nodejs server serves static files on GET request. On a POST
request to /upload, the server processes the body and looks for the file and
data fields. It will write the Base64-decoded data from data to the file
name specified in file.
To start the demo, run npm start and navigate to http://localhost:7262/
XMLHttpRequest (xhr.html)
For downloading data, the arraybuffer response type generates an ArrayBuffer
that can be viewed as an Uint8Array and fed to XLSX.read using array type.
For uploading data, this demo populates a FormData object with string data
generated with the base64 output type.
axios (axios.html) and superagent (superagent.html)
The codes are structurally similar to the XMLHttpRequest example. axios uses
a Promise-based API while superagent opts for a more traditional chain.
fetch (fetch.html)
For downloading data, response.blob() resolves to a Blob object that can be
converted to ArrayBuffer using a FileReader.