| export function sendRequest(endpoint, payload, options) { | |
| if (COMPILE_COMPAT) { | |
| var request = new XMLHttpRequest() | |
| request.open('POST', endpoint, true) | |
| request.setRequestHeader('Content-Type', 'text/plain') | |
| request.send(JSON.stringify(payload)) | |
| request.onreadystatechange = function () { | |
| if (request.readyState === 4) { | |
| if (request.status === 0) { | |
| options && | |
| options.callback && | |
| options.callback({ error: new Error('Network error') }) | |
| } else { | |
| options && | |
| options.callback && | |
| options.callback({ status: request.status }) | |
| } | |
| } | |
| } | |
| } else { | |
| if (window.fetch) { | |
| fetch(endpoint, { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'text/plain' | |
| }, | |
| keepalive: true, | |
| body: JSON.stringify(payload) | |
| }) | |
| .then(function (response) { | |
| options && | |
| options.callback && | |
| options.callback({ status: response.status }) | |
| }) | |
| .catch(function (error) { | |
| options && options.callback && options.callback({ error }) | |
| }) | |
| } | |
| } | |
| } | |