There are a few ways to handle it, but yes it would either need to be done client side or via a server proxy.
I am actually toying around with something (that I may or may not release publicly, depends on how far I get before I lose interest) to help app developers do stuff like this without heavy processing on the client.