使用 javascript 检查 url 内容类型

Posted

技术标签:

【中文标题】使用 javascript 检查 url 内容类型【英文标题】:Check url content type with javascript 【发布时间】:2014-07-25 20:26:19 【问题描述】:

为了节省服务器资源,我正在寻找一种方法来使用 javascript 检索给定 url 的内容类型。它不应该只从 url 下载标题的完整内容。这是否可能与 javascript 的限制有关。

【问题讨论】:

我想你看过这个question? 发出 HEAD 请求。多田! 所以我认为外部 url 是不可能的 不是不可能,这取决于服务器是否启用了CORS。 【参考方案1】:

使用 head 请求进行 Ajax 调用。

var url = window.location.href;
var xhttp = new XMLHttpRequest();
xhttp.open('HEAD', url);
xhttp.onreadystatechange = function () 
    if (this.readyState == this.DONE) 
        console.log(this.status);
        console.log(this.getResponseHeader("Content-Type"));
    
;
xhttp.send();

【讨论】:

跨源网址怎么样? @Exlord 如果他们确定有 COR,如果没有,让你的服务器端来做。【参考方案2】:

仅供参考,如果您的服务器不允许 HEAD 请求但允许 GET 请求,您可以通过限制 GET 请求的范围来做到这一点。

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url, true);
xmlhttp.setRequestHeader("Range", "bytes=0");
xmlhttp.onreadystatechange = function () 
  if (this.readyState == this.DONE) 
    console.log(this.getResponseHeader("Content-Type"));
  
;
xmlhttp.send();

【讨论】:

这对我有用。另外,如果您想使用箭头函数而不是无名函数,请将“this”更改为“xmlhttp”。

以上是关于使用 javascript 检查 url 内容类型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Javascript 中获取给定 url 的内容类型?

如何在c#中检查url是文件类型还是网页类型?

使用 JavaScript 控制 URL 栏

使用 Javascript 正则表达式检查有效的 url

检查跨域 url 是不是使用 javascript 给出 404

使用 javascript 检查 URL 是不是包含值