This is still rather easy. You can change the UI (i.e. set the button into a "Loading..." state) directly after the click and when the server sends back the response act accordingly. An error would reset the button and prompt an error message.
With rest, it would be a much more manually implemented feature. The default would be to just fail silently and potentially drop important data on the next page load.