There is no reason to request the file with an AJAX callback, as downloading the file doesn't refresh the page and therefore the user doesn't lose the context, which is usually the reason why you would prefer AJAX callback.
According to your comments, there are 2 ways to overcome the problem :
- You can write into the response stream at the same time that you are downloading the file from the second server and therefore making the progress visible in the open/save dialog of the browser.
- You can temporarily store the file somewhere in the database / file system and send it with a second request made directly by the user.
The first one seems more reasonable to me as you don't have to deal with the intermediate storage.