所以我需要在向客户显示特定数据之前检查文件是否存在...使用 jQuery 我有这个:
<script>
function fileExists(fileLocation) {
var response = $.ajax({
url: fileLocation,
type: 'HEAD',
async: false
}).status;
alert(response);
}
</script>
当我尝试运行函数时:
<script> fileExists('http://www.example.com/123.jpg'); </script>
(其中 example.com 是我的域),我总是收到 200 响应代码。我想知道为什么会发生这种情况 - 会不会是我通过 .htaccess 设置了自定义错误页面?或者,是否有更好的方法来执行此操作?
注意:正在使用 jQuery 1.5.1。
更新:它似乎被定向到我们通过 .htaccess 设置的自定义错误页面:
ErrorDocument 404 http://www.example.com/errors/notfound.php
不确定这是否会导致冲突,或者如何解决。
已解决
我检查了自定义 404 页面的 header ,它返回了 200 响应代码。必须对 header 进行硬编码:
<?php header('HTTP/1.1 404 Not Found'); ?>
然后会返回 404 响应代码 - 解决我的问题。
最佳答案
你为什么不通过回调异步实现这一点 success and error ?
$.ajax({
type: 'HEAD',
url: fileLocation,
success: function(msg){
alert(msg);
},
error: function(jqXHR, textStatus, errorThrown){
log(jqXHR);
log(errorThrown);
}
});
关于javascript - 使用 Ajax 和 jQuery 检查文件是否存在——总是返回 200 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7473387/