online ejemplos ejemplo bootstrap jquery ajax http forms iframe

jquery - ejemplos - iframe video



Recuperando el código de estado HTTP del iframe cargado con Javascript (2)

Utilicé el complemento jQuery Form para el envío asíncrono de formularios. Para los formularios que contienen archivos, copia el formulario en un iframe oculto, lo envía y copia el contenido del iframe. El problema es que no puedo encontrar la forma de encontrar qué código de estado HTTP devolvió el servidor. Por ejemplo, si el servidor devuelve 404, los datos del iframe se copiarán de forma normal y se tratarán como una respuesta normal.

Intenté hurgar en los objetos del iframe buscando algún tipo de atributo status_code , pero no he podido encontrar algo así.

La función $.ajax() no se puede usar porque no admite la carga de archivos. La única forma de subir archivos de forma asíncrona que conozco es utilizando el método de iframe oculto.


JS no puede obtener encabezados de página, pero puede distinguir el error del éxito: Pruebe algo como esto:

<script type="text/javascript"> var uploadStarted = false; function OnUploadStart(){ uploadStarted = true; } function OnUploadComplete(state,message){ if(state == 1) alert("Success: "+message); else if(state == 0 && uploadStarted) alert("Error:"+( message ? message : "unknow" )); } </script> <iframe id="uploader" name="uploader" onload="OnUploadComplete(0)" style="width:0px;height:0px;border:none;"></iframe> <form id="sender" action="/upload.php" method="post" target="uploader" enctype="multipart/form-data" onsubmit="OnUploadStart()"> <input type="file" name="files[upload]"/> <input type="submit" value="Upload"/> </form>

En el lado del servidor:

/* file: upload.php */ <?php // do some stuff with file print ''<script type="text/javascript">''; if(success) print ''window.parent.OnUploadComplete(1,"File uploaded!");''; else print ''window.parent.OnUploadComplete(0, "File too large!");''; print ''</script>''; ?>


No puede recuperar el código de estado HTTP del "iframe" cargado directamente. Pero cuando se produce un error http, el servidor no devolverá nada al "iframe". Entonces, el iframe no tiene contenido. puede verificar el cuerpo del iframe, cuando el cuerpo del iframe está en blanco, use ajax con la misma URL para obtener la respuesta del servidor. Luego puede recuperar el código de estado http de la respuesta.