summaryrefslogtreecommitdiff
path: root/request.js
blob: f8998d3a93dbcac8f252c8abb845ec0a6cec7e41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function sendRequest(method, url, callback, data)
{
    let request = new XMLHttpRequest();

    request.onreadystatechange = function() {
        if (request.readyState === XMLHttpRequest.DONE) {
            let response = {
                status : request.status,
                headers : request.getAllResponseHeaders(),
                contentType : request.responseType,
                content : request.response
            };

            callback(response);
        }
    }

    request.open(method, url);

    if (data) {
        // TODO: understand these headers
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Content-length", data.length);
        request.setRequestHeader("Connection", "close");
        request.send(data);
    } else {
        request.send();
    }
}