javascript - 使用 Ajax 和 jQuery 检查文件是否存在——总是返回 200 响应

标签 javascript jquery ajax

所以我需要在向客户显示特定数据之前检查文件是否存在...使用 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/

相关文章:

javascript - 如何通过下拉菜单查看多个表?

javascript - ASP MVC Controller 发布具有不同值的相同 html 输入名称

javascript - ember 中的实时更新 View

javascript - 在单元测试中创建具有特定属性的错误对象

javascript - 为 div 的高度设置动画并让下面的 div 向下移动

javascript - 单击带有 <select> 的选定值作为参数的按钮

java - 使用ajax请求发送时json值返回null

javascript - iOS 双指缩放 - 现在无法通过视口(viewport)禁用

javascript - 我怎样才能保存cookie

javascript - 我想要 Ember.Handlebars.helper 内部的 Handlebar {{#if}} 逻辑