当前位置: 首页 > 面试题库 >

使用Ajax和jQuery检查文件是否存在-始终返回200响应

郑宇
2023-03-14
问题内容

所以我需要在向客户端显示特定数据之前检查文件是否存在…使用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页面的标题,它返回了200个响应代码。不得不硬编码标题:

<?php header('HTTP/1.1 404 Not Found'); ?>

然后返回404响应代码-解决了我的问题。


问题答案:

看来我的签发与我的自定义404页面一起存在,该页面返回了200状态代码。我必须使用php
header()函数对404响应代码进行硬编码,从而解决了我遇到的问题。现在,如果该页面不存在,则可以正确执行以下操作:

使用一种简单的方法来测试当前是否存在页面/文件:

$.ajax({
    type: 'HEAD',
    url: 'http://www.example.com/index.php',
    success: function() {
        alert('Page found.');
    },  
    error: function() {
        alert('Page not found.');
    }
});

感谢@kalyfe提出了切换到异步方法的建议。



 类似资料:
  • 问题内容: 尝试检查我要读取的文件是否存在。 问题答案: 这是另一种方法: 包装的用途和功能: p_DirName in varchar2, – schema object name p_FileName in varchar2 ) return number is l_file_loc bfile; begin l_file_loc := bfilename(upper(p_DirName),

  • 问题内容: 我尝试添加 检查返回的对象是否为空,但是它不起作用。 有人可以告诉我这是怎么回事吗? 问题答案: 只需测试数组是否为空。

  • 我有麻烦让我的代码工作。当用户输入用户名时,它会检查数据库,看看它是否存在,以及它是否设置了

  • 问题内容: 如何检查 文件 的存在? 在模块的文档中,有方法的说明。但是,据我了解,它只检查目录的存在。而且我需要检查 文件 ! 如何才能做到这一点? 问题答案: 为什么不尝试打开文件? 无论如何,经过一分钟的搜索,请尝试以下操作: 对于Node.js v0.12.x及更高版本 双方并已弃用 *编辑: 已更改: 至: 林特抱怨双重等于不是三次等于。 使用fs.stat:

  • 我正在做一个新项目,我想实现一个“等到网站打开”功能,如果http://switch-check.cf/index.php打开,然后继续。 现在,在我的帮助下。htaccess和php我尽了最大的努力。禁止访问php文件。因此,如果你试图访问我提到的网页,你应该得到一个 403拒绝访问 因此,我使用urllib(也尝试了请求)查看网站是否已打开或仍处于禁止访问状态然而,无论我尝试什么,我总是得到2

  • 问题内容: 我正在通过jQuery $ .ajax加载图像路径,并在显示图像之前先检查它是否确实存在。我可以使用图像加载/就绪事件或类似的方法来确定文件路径有效吗? 将.myimage设置为显示:无,我希望这样做 这样有可能吗? 问题答案: 好吧,你可以绑定处理程序… 像这样, 好吧,您已经可以使用load-event 问题是如果禁用Javascript,图像将永远不会显示…