技术解析

jQuery 用 ajax 检测文件是否存在,不应出现的报错
0
2021-08-18 00:10:33
idczone

最近尝试用 jQuery 的 ajax,通过判断状态码的方式来判断文件是否存在,但是当文件不存在的时候 jQuery 会报错,如下:

Failed to load resource: the server responded with a status of 404 (Not Found)

由于使用的 ajax,出错的地方在 jQuery,用到 ajax 请求文件的代码如下:

function isFileExist(url){
    if(url.length==0){
        return false;
    }
    var isExist=true;
    $.ajax(url, {
         type: 'get',
         async: false,
         timeout: 1000,
         success: function() {
         },
         error: function() {
           isExist = false;  
         }
    });
    return isExist;
}

检测文件是否存在的功能实现了,但是那条报错信息还是存在,虽然对功能没有影响,但是莫名其妙多出来一条报错对于我这个强迫症来说不太好受,请问有什么办法让他不报错吗?

尝试过 try catch,貌似不太行(←也有可能是我技术渣


get 换成 head 试试?

这样写真的可以么 ajax 是异步执行的吧

现在浏览器还支持 async 为 false 吗

猜测和 CORS 的 Preflight request 有关, 需要 server 支持
详细见
https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

试了,控制台还是会报 404

我把异步关了啊

看了下,感觉应该不是,可能是因为 jQuery 用 ajax 请求文件时,状态码为 404 就会抛出错误

这报错是浏览器自己报的,和 jq 无法。你换个 firefox 看看,404 就不会在控制台报错

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服