-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathajax.js
59 lines (57 loc) · 1.99 KB
/
ajax.js
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
createHTTPRequestObject = function() {
// although IE supports the XMLHttpRequest object, but it does not work on local files.
var forceActiveX = (window.ActiveXObject && location.protocol === "file:");
if (window.XMLHttpRequest && !forceActiveX) {
return new XMLHttpRequest();
} else {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
alert ("Your browser doesn't support XML handling!");
return null;
}
getJSON = function(url, success, error)
{
var xhr = createHTTPRequestObject();
xhr.open("get", url, true);
xhr.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xhr.setRequestHeader("Authorization", "token " + config.access_token);
xhr.onreadystatechange = function() {
if (xhr.readyState==4 && xhr.status==200) {
var headers = {};
if (xhr.getAllResponseHeaders) {
var headersArray = xhr.getAllResponseHeaders().split("\n");
for (var i=0; i<headersArray.length; i++) {
var kv = headersArray[i].split(": ");
if (kv.length==2) {
var k = kv[0].toLowerCase();
headers[k] = kv[1];
}
}
}
success(JSON.parse(xhr.responseText), headers);
}
if (xhr.status != 200) {
if (error) error();
}
}
xhr.send();
}
ajax = function(post, url, callback) {
var xhr = createHTTPRequestObject();
var method = "post";
if (post == null) {
method = "get";
}
xhr.open(method, url, true);
xhr.setRequestHeader("Accept", "application/json, text/javascript, */*; q=0.01");
xhr.setRequestHeader("Authorization", "token " + config.access_token);
xhr.onreadystatechange = function() {
if (xhr.readyState==4 && xhr.status==200)
{
callback(xhr.responseText);
}
}
xhr.send(JSON.stringify(post));
}