XDomainRequest Transport
XDomainRequest, with jQuery transport.
HTML
<script src="http://oauth.googlecode.com/svn/code/javascript/sha1.js"></script>
<script src="http://oauth.googlecode.com/svn/code/javascript/oauth.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
<div id="output"></div>
JavaScript
var $output = $('#output');
var getAuthorizationHeader = function(url, key, secret) {
var message = {
method : 'GET'
,action : url
,parameters : { oauth_nonce: OAuth.nonce(32) }
};
// Timestamp gets set wrong in IE>9, so set up a test
var currentDate = +(new Date);
// Fill the message object with the necessary fields (timestamp, signature, etc.)
OAuth.completeRequest(message, {
consumerKey : ''+key
,consumerSecret : ''+secret
});
return OAuth.getAuthorizationHeader('', message.parameters);
};
// Many browsers and users don't have correct time, so get a stable offset to adjust it by
var correctTime = function(callback) {
return callback(null);
$.ajax({
url: 'http://192.237.222.223:1999/time.json?key=6oWsI1rwqw5ccvlcbrxgkLAqOts=',
type: 'GET',
dataType: 'json',
success: function(time){
OAuth.correctTimestamp(parseInt(time.unix));
callback(null);
},
error: function(jqXHR, textStatus){
callback(textStatus);
}
});
};
var getNARCData = function(key, secret, callback) {
$.ajax({
url: 'http://192.237.222.223:1999/get_data',
type: 'GET',
data: {
auth:
getAuthorizationHeader('http://192.237.222.223:1999/get_data', key, secret)
},
success: function(data){
callback(null, data);
},
error: function(jqXHR, textStatus, thrownError){
console.log(JSON.stringify(jqXHR));
console.log(JSON.stringify(textStatus));
console.log(JSON.stringify(thrownError));
callback(textStatus);
}
});
};
/*
* Init function here
*/
$output.text('Loading...');
// First make sure we're sending correct timestamps
correctTime(function(error){
if (error) {
if (window.console) {
console.log("Couldn't get correct time; continuing anyway.");
} else {
alert("Couldn't get correct time; continuing anyway.");
}
}
// Then get the NARC data
getNARCData(99999999, '5a905fc3', function(error, data) {
...