如何仅使用javascript确定文档的mime类型?

如何仅使用javascript确定文档的mime类型?,javascript,internet-explorer,mime-types,Javascript,Internet Explorer,Mime Types,我需要确定从服务返回的某些文件的mime类型,我不知道它们的文件扩展名或它们的类型,基本上我们从API检索文档,如:“其中末尾的随机文本是某个文件 <input type="button" value="Click Me" onClick="alert(document.getElementById('iframeID').contentDocument.contentType);"> <iframe id="iframeID" src="http://site.com/ge

我需要确定从服务返回的某些文件的mime类型,我不知道它们的文件扩展名或它们的类型,基本上我们从API检索文档,如:“其中末尾的随机文本是某个文件

<input type="button" value="Click Me" onClick="alert(document.getElementById('iframeID').contentDocument.contentType);">

<iframe id="iframeID" src="http://site.com/getFile/BFD843DFLKXJDF" width="600" height="600" />

这在Firefox中起作用,它在警报对话框中返回:“application/pdf”以显示pdf文件。然而,Internet Explorer是我需要瞄准的主要浏览器,“contentDocument”没有定义(显然我只使用“document”),但“contentType”也没有定义,我不知道IE的等价物是什么(谷歌搜索没有产生任何结果)

非常感谢您的帮助。

如果与您的域不同,您将无法在任何浏览器上访问其数据。这是因为跨站点脚本安全措施。

也许:

var frame = document.getElementById('iframeID');  
var type;  

if (frame.contentDocument) { 
  type = frame.contentDocument.contentType;  
} else {
  type = frame.contentWindow.document.contentType;  
}
alert(type);  

很抱歉,今天没有时间测试….

IE支持
document.mimeType
,但它似乎给出了一个友好的名称,而不是实际的foo/bar语法。这是威德。尽管这对你来说已经足够好了


我不知道为什么它没有被记录,但是本地IHTMLDocument2接口确实记录了它。非常奇怪。

不幸的是,这不是contentType属性——如果你在这个页面的地址栏中输入以下javascript:“javascript:alert(document.contentType);”然后按“enter”——在IE中你会得到“undefined”,在firefox中你会得到“text/html”。site.com是同一个域,但我只能接触事物的前端。所以我认为跨站点不会是一个问题。那么为什么要使用JavaScript来获取内容类型呢?服务器不应该以更干净的方式提供此类信息吗?我目前无法访问后端代码/功能,因此我正在寻找前端方式来获取mime类型,如果有一种方式,服务器自然地将mime类型公开给前端,那么我希望听到它,因为我现在处于死胡同。不幸的是,我没有运气使用mimeType属性。它根本不起作用(脚本错误),或者它没有提供您想要的内容?它没有提供实际文档的mime类型。举个例子,在这个页面上调用document.mimeType会给我一个“Firefox文档”(我假设这意味着它是一个html文档——到目前为止还不错),在JPEG上调用它会给我一个JPG图像,同样好,在pdf上调用它会给我一个错误:“Internet Explorer无法下载。未指定的错误”--我们得到的许多文档都有不同的格式,包括这些。嗨,你有没有找到一个好方法来做这件事?我也面临同样的问题。我计划使用JavaScript根据文件扩展名获取mime类型。您是否找到/编写了执行此查找的函数?