Así que estoy que comprobar si existe un archivo antes de mostrar los datos específicos de los clientes ... usando jQuery tengo esto:El uso de Ajax y jQuery para comprobar si existe el archivo - siempre devuelve respuesta 200
<script>
function fileExists(fileLocation) {
var response = $.ajax({
url: fileLocation,
type: 'HEAD',
async: false
}).status;
alert(response);
}
</script>
Cuando intento ejecutar la función:
<script> fileExists('http://www.example.com/123.jpg'); </script>
(donde example.com es mi dominio), SIEMPRE recibo un código de respuesta de 200. Me preguntaba por qué podría estar pasando esto. ¿Podría ser que tengo una página de error personalizada configurada a través de .htaccess? O, ¿hay un mejor método para hacer esto?
Nota: jQuery 1.5.1 se está utilizando.
actualización: Parece que está siendo dirigida a nuestra página de error personalizada establecida a través .htaccess:
ErrorDocument 404 http://www.example.com/errors/notfound.php
No estoy seguro si esto causa el conflicto, o cómo conseguir alrededor de él.
RESUELTO
Revisé las cabeceras para mi página 404, se devuelve un código de respuesta 200. Tuve que codificar el encabezado:
<?php header('HTTP/1.1 404 Not Found'); ?>
que luego devolvería el código de respuesta 404 - solucionando mi problema.
¿Sucede incluso cuando el archivo no existe? – 8vius
Sí, por ejemplo: 123.jpg no existe en el servidor, pero devuelve un código de estado de 200 de todos modos. –
Parece que el servidor no está configurado correctamente. ¿Qué sucede cuando OBTIENES ese recurso? ¿Todavía obtienes 200, pero con contenido que sugiere 404? En cuyo caso eso suena como una configuración incorrecta. –