creo que estas haciendo las cosas un poco complicadas...
el hecho de la función
$.getJSON no envía el formulario, es mas, solo hace una petición GET para obtener una respuesta, imagino que obtienes:
prueba
para subir un archivo usando Ajax el método de envío debería ser POST y no GET, además, debe ser capaz de enviar la información binaria del archivo a subir, cosa que actualmente es imposible de lograr usando jQuery solamente...
de ahí el uso del <iframe/>, y es una técnica válida, sin embargo existen algunas mas eficientes usando
Flash, de hecho todas las extensiones para subir archivos asíncronamente dependen de Flash...
creo que tu tema no va en este foro, pues es mas problema de JS/DOM, y sobre la forma en que recibes los datos... la único que se me ocurre es lo siguiente:
- al enviar el formulario por un iframe dicho iframe debe cargar el resultado finalizado de la operación, exactamente igual que si enviaras el formulario normalmente...
- bien, dicho iframe podría tener el atributo
onload que ejecutaría alguna función al terminar la carga de dicho marco...
- al final en dicho callback puedes obtener la información recibida en el iframe, que podría ser formato JSON claramente...
al final mi recomendación es que uses un script ya existente, ya que implementar esto que necesitas lleva su tiempo y no es sencillo dominar todos los aspectos, sin embargo hice una búsqueda sencilla y resultó esto:
Google file upload using iframe http://www.ajaxprojects.com/ajax/tut...php?itemid=378 http://viralpatel.net/blogs/2008/11/...en-iframe.html http://www.webtoolkit.info/ajax-file-upload.html