From what I can tell, $.ajax and its friend $.post aren’t really built for making uploading files easily, which seems like a rather odd shortcoming. It seems like you need plugins to make it easier. The thing is that until recently you did need to submit a form to upload files, and therefore a hidden iframe is normally used. I say that because of the relatively new uploading capabilities of the HttpXMLRequest object and its related File API that Firefox and Chrome support.
Actually, my code is too focused on a particular application to be very useful, so I think you’d be better off looking at the code I said helped me write my own.