|
|
@@ -0,0 +1,30 @@ |
|
|
/* globals ActiveXObject:false */ |
|
|
|
|
|
'use strict' |
|
|
|
|
|
module.exports = { |
|
|
load: load |
|
|
} |
|
|
|
|
|
function load (location, callback) { |
|
|
const xhr = getXHR() |
|
|
xhr.open('GET', location, true) |
|
|
xhr.onreadystatechange = createStateChangeListener(xhr, callback) |
|
|
xhr.send() |
|
|
} |
|
|
|
|
|
function createStateChangeListener (xhr, callback) { |
|
|
return function () { |
|
|
if (xhr.readyState === 4 && xhr.status === 200) { |
|
|
try { |
|
|
callback(null, JSON.parse(xhr.responseText)) |
|
|
} catch (err) { |
|
|
callback(err, null) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
function getXHR () { |
|
|
return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP') |
|
|
} |