Simple XHR and navigator.sendBeacon wrapper
Maybe fetch in a later version
No dependencies
npm install paper-plane
paper-plane is an ES module.
However, dist/paperplan.min.js is not (as browser support for ESM is not widespread), this file will create a PaperPlane object attached to the window (window.PaperPlane). This will likely change in the future.
const headers = new Map();
const successCallback = function() {
alert('GET call successful');
};
PaperPlane.get(
'/endpoint',
headers,
successCallback
);const headers = new Map();
const successCallback = function() {
alert('HEAD call successful');
};
PaperPlane.head(
'/endpoint',
headers,
successCallback
);Sending data requires constructing a request payload or query string with one of the PaperPlane helper methods. The examples below construct a JSON payload via PaperPlane.makeJsonRequestData().
Constructing a payload from FormData is supported via PaperPlane.makeFormDataRequestData().
Constructing a payload from a Blob (or File, as a File is a Blob) is supported via PaperPlane.makeBlobRequestData().
Constructing a query string (to append to an endpoint) is supported via PaperPlane.makeUrlQueryString()
const headers = new Map();
const successCallback = function() {
alert('POST call successful');
};
PaperPlane.post(
'/endpoint',
PaperPlane.makeJsonRequestData({}, headers),
successCallback
);const headers = new Map();
const successCallback = function() {
alert('PUT call successful');
};
PaperPlane.put(
'/resource/id',
PaperPlane.makeJsonRequestData({}, headers),
successCallback
);Send an HTTP beacon request to server.
PaperPlane.postBeacon(
'/analytics/view',
PaperPlane.makeJsonRequestData({}, headers)
);const headers = new Map();
const successCallback = function() {
alert('DELETE call successful');
};
PaperPlane.delete(
'/resources/id',
PaperPlane.makeJsonRequestData({}, headers),
successCallback
);