react/test/lib/postDataToURL.browser.js
2014-01-06 12:26:40 -05:00

35 lines
1.1 KiB
JavaScript

function createXMLHttpRequest(){
try{return new XMLHttpRequest();}
catch(e){}
try {return new ActiveXObject("Msxml2.XMLHTTP");}
catch (e) {}
try {return new ActiveXObject("Microsoft.XMLHTTP");}
catch (e) {}
}
function getURLSync(url){
var request = createXMLHttpRequest();
request.open('GET', url, /*asynchronous?*/false);
return request.responseText;
}
function postDataToURL(data, url, callback) {
if (!callback) callback = postDataToURL.defaultCallback;
var request = createXMLHttpRequest();
if (!request) return callback(Error('XMLHttpRequest is unsupported'));
postDataToURL.running = (postDataToURL.running||0) + 1;
request.onreadystatechange = function(){
if (request.readyState != 4) return;
request.onreadystatechange = null;
postDataToURL.running = (postDataToURL.running||0) - 1;
callback(request.status == 200 ? null : request.status, request.responseText);
};
request.open('POST', url);
request.setRequestHeader('Content-Type', 'application/json');
request.send(JSON.stringify(data));
}
postDataToURL.defaultCallback = function(error){
// console.log('postDataToURL.defaultCallback', arguments)
}