如何检查网址是javascript中的文件或文件夹?

ome*_*ega 0 javascript url jquery file path

在javascript/jquery中,给定一个url字符串,如何检查它是文件或目录的URL?

谢谢

Dav*_*vid 6

你不能,因为HTTP没有区别.

URL既不是"文件"也不是"目录".这是一种资源.在请求该资源时,服务器会响应响应.该响应由标题和内容组成.

标题(例如content-disposition)可以指示响应应该被消费客户端视为文件.但就其本身而言,它不是"文件",因为HTTP不是文件系统.

任何资源都可以返回服务器想要的任何响应.例如,您可能会请求http://www.something.com并期望不获取文件,因为您没有要求提供文件.但它仍然可以返回一个.或者,即使您要求index.html您可能也不会获得名为"index.html"的"文件",而是获得其他一些响应.

即使您从您的角度要求"目录",服务器仍然使用标题和内容进行响应.该内容可以采用目录列表的形式,但除了解析内容本身之外,它与任何其他成功响应无法区分.

如果您正在寻找服务器指示的内容是"文件",那么您正在查找content-disposition响应中的标头,并且您将要解析该标头的值.除了那个案例之外,我怀疑无论你需要知道它是"文件"还是"目录"都是你想要做的任何设计问题的症状,因为问题本身没有实际意义.在HTTP中.


Tre*_*xon 6

像大卫说的那样,你无法说出来.但是如果你想知道网址的最后一部分是否有'.' 在它(也许这就是你的"文件"的意思?),这可能有效:

function isFile(pathname) {
    return pathname.split('/').pop().indexOf('.') > -1;
}

function isDir(pathname) { return !isFile(pathname); }

console.log(isFile(document.location.pathname));
Run Code Online (Sandbox Code Playgroud)