dojo.io.frame.send will only send one request at a time, so if it considers that the first request is still being processed (whether it is actually or not), it will not work in the second call. The trick is to call cancel() on the returned deferred result if it exists, for example:
if (this._deferred) { this._deferred.cancel(); } this._deferred = dojo.io.iframe.send({ ....
which will cancel the first request and allow the second request to send it correctly.
Talis source share