just load the binary from ajax, you don't need a byte array...
to download, the best way is to echo the data from a server that sets a content-disposition header to attachment and offers a meaningful filename to the user.
without a server, you can use data: urls and an external-handled or unknown mime type to raise the open/save dialog box. this will allow the user to save the file in ie9+, but you won't have a suggested filename, which makes it less usable than the server bounce method...
Bookmarks