Skip to content

Commit

Permalink
Fix #66: failure to post data to /xhr_send should kill the session
Browse files Browse the repository at this point in the history
  • Loading branch information
majek committed Nov 15, 2012
1 parent e6489c8 commit 5ab8769
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions lib/trans-sender.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,14 @@ BufferedSender.prototype.send_schedule = function() {
var that = this;
if (that.send_buffer.length > 0) {
var payload = '[' + that.send_buffer.join(',') + ']';
that.send_stop = that.sender(that.trans_url,
payload,
function() {
that.send_stop = null;
that.send_schedule_wait();
});
that.send_stop = that.sender(that.trans_url, payload, function(success, abort_reason) {
that.send_stop = null;
if (success === false) {
that.ri._didClose(1006, 'Sending error ' + abort_reason);
} else {
that.send_schedule_wait();
}
});
that.send_buffer = [];
}
};
Expand Down Expand Up @@ -113,7 +115,9 @@ var jsonPGenericSender = function(url, payload, callback) {
iframe = null;
});
area.value = '';
callback();
// It is not possible to detect if the iframe succeeded or
// failed to submit our form.
callback(true);
};
iframe.onerror = iframe.onload = completed;
iframe.onreadystatechange = function(e) {
Expand All @@ -126,10 +130,11 @@ var createAjaxSender = function(AjaxObject) {
return function(url, payload, callback) {
var xo = new AjaxObject('POST', url + '/xhr_send', payload);
xo.onfinish = function(status, text) {
callback(status);
callback(status === 200 || status === 204,
'http status ' + status);
};
return function(abort_reason) {
callback(0, abort_reason);
callback(false, abort_reason);
};
};
};

0 comments on commit 5ab8769

Please sign in to comment.