|
|
|
@ -1,15 +1,14 @@
|
|
|
|
|
// Copyright (c) 2015 Yannic ARNOUX
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Make a X-Domain request to url and callback.
|
|
|
|
|
*
|
|
|
|
|
* @param url {String}
|
|
|
|
|
* @param method {String} HTTP verb ('GET', 'POST', 'DELETE', etc.)
|
|
|
|
|
* @param data {String} request body
|
|
|
|
|
* @param header {Dict} header options
|
|
|
|
|
* @param callback {Function} to callback on completion
|
|
|
|
|
* @param errback {Function} to callback on error
|
|
|
|
|
*/
|
|
|
|
|
function xdr(url, method, data, callback, errback) {
|
|
|
|
|
function xdr(url, method, data, header, callback, errback) {
|
|
|
|
|
var req;
|
|
|
|
|
|
|
|
|
|
if(XMLHttpRequest) {
|
|
|
|
@ -27,6 +26,9 @@ function xdr(url, method, data, callback, errback) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
for ( var h in header ) {
|
|
|
|
|
req.setRequestHeader(h, header[h]);
|
|
|
|
|
}
|
|
|
|
|
req.send(data);
|
|
|
|
|
}
|
|
|
|
|
} else if(XDomainRequest) {
|
|
|
|
@ -36,100 +38,38 @@ function xdr(url, method, data, callback, errback) {
|
|
|
|
|
req.onload = function() {
|
|
|
|
|
callback(req.responseText);
|
|
|
|
|
};
|
|
|
|
|
for ( var h in header ) {
|
|
|
|
|
req.setRequestHeader(h, header[h]);
|
|
|
|
|
}
|
|
|
|
|
req.send(data);
|
|
|
|
|
} else {
|
|
|
|
|
errback(new Error('CORS not supported'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Create the XHR object.
|
|
|
|
|
function stacosys_get_cors_request(method, url) {
|
|
|
|
|
var xhr = new XMLHttpRequest();
|
|
|
|
|
if ("withCredentials" in xhr) {
|
|
|
|
|
// XHR for Chrome/Firefox/Opera/Safari.
|
|
|
|
|
xhr.open(method, url, true);
|
|
|
|
|
} else if (typeof XDomainRequest != "undefined") {
|
|
|
|
|
// XDomainRequest for IE.
|
|
|
|
|
xhr = new XDomainRequest();
|
|
|
|
|
xhr.open(method, url);
|
|
|
|
|
} else {
|
|
|
|
|
// CORS not supported.
|
|
|
|
|
xhr = null;
|
|
|
|
|
}
|
|
|
|
|
return xhr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function stacosys_count(callback) {
|
|
|
|
|
|
|
|
|
|
function stacosys_get_count(callback, errback) {
|
|
|
|
|
var url = STACOSYS_URL + '/comments/count?token=' + STACOSYS_TOKEN + '&url=' + STACOSYS_PAGE;
|
|
|
|
|
var xhr = stacosys_get_cors_request('GET', url);
|
|
|
|
|
if (!xhr) {
|
|
|
|
|
console.log('CORS not supported');
|
|
|
|
|
callback(0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Response handlers.
|
|
|
|
|
xhr.onload = function() {
|
|
|
|
|
var jsonResponse = JSON.parse(xhr.responseText);
|
|
|
|
|
var count = jsonResponse.count;
|
|
|
|
|
callback(count);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
xhr.onerror = function() {
|
|
|
|
|
console.log('Woops, there was an error making the request.');
|
|
|
|
|
callback(0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
xhr.send();
|
|
|
|
|
xdr(url, 'GET', null, {}, callback, errback);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function stacosys_load(callback) {
|
|
|
|
|
|
|
|
|
|
function stacosys_load_comments(callback, errback) {
|
|
|
|
|
var url = STACOSYS_URL + '/comments?token=' + STACOSYS_TOKEN + '&url=' + STACOSYS_PAGE;
|
|
|
|
|
var xhr = stacosys_get_cors_request('GET', url);
|
|
|
|
|
if (!xhr) {
|
|
|
|
|
console.log('CORS not supported');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Response handlers.
|
|
|
|
|
xhr.onload = function() {
|
|
|
|
|
var jsonResponse = JSON.parse(xhr.responseText);
|
|
|
|
|
callback(jsonResponse);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
xhr.onerror = function() {
|
|
|
|
|
console.log('Woops, there was an error making the request.');
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
xhr.send();
|
|
|
|
|
xdr(url, 'GET', null, {}, callback, errback);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function stacosys_new(author, email, site, captcha, callback) {
|
|
|
|
|
|
|
|
|
|
var url = STACOSYS_URL + '/comments?token=' + STACOSYS_TOKEN
|
|
|
|
|
+ '&url=' + STACOSYS_PAGE + '&author=' + author
|
|
|
|
|
+ '&email=' + email + '&site=' + site
|
|
|
|
|
+ '&captcha=' + captcha;
|
|
|
|
|
var xhr = stacosys_get_cors_request('POST', url);
|
|
|
|
|
if (!xhr) {
|
|
|
|
|
console.log('CORS not supported');
|
|
|
|
|
callback(false);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Response handlers.
|
|
|
|
|
xhr.onload = function() {
|
|
|
|
|
var jsonResponse = JSON.parse(xhr.responseText);
|
|
|
|
|
callback(jsonResponse);
|
|
|
|
|
function stacosys_new_comment(author, email, site, captcha, callback, errback) {
|
|
|
|
|
var url = STACOSYS_URL + '/comments';
|
|
|
|
|
var data = {
|
|
|
|
|
'token': STACOSYS_TOKEN,
|
|
|
|
|
'url': STACOSYS_PAGE,
|
|
|
|
|
'author': author,
|
|
|
|
|
'email': email,
|
|
|
|
|
'site': site,
|
|
|
|
|
'captcha': captcha
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
xhr.onerror = function() {
|
|
|
|
|
console.log('Woops, there was an error making the request.');
|
|
|
|
|
callback(false);
|
|
|
|
|
var header = {
|
|
|
|
|
'Content-type': 'application/json'
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
xhr.send();
|
|
|
|
|
var j = JSON.stringify(data);
|
|
|
|
|
xdr(url, 'POST', JSON.stringify(data), header, callback, errback);
|
|
|
|
|
}
|
|
|
|
|