jQuery-media 只获取外部内容

jQuery-media only fetches external content

我正在使用 jQuery media plugin 在我的网页上显示 HTML 和 PDF 文档。该插件将毫无问题地加载任何外部托管的 PDF/HTML。但是,当我尝试向我的应用程序提供 returns 文件内容的 URL 时,它从不尝试获取 URL.

我已经尝试了应用程序视图的相对 URL 路径 (/ajax/...) 和完整的 URL 路径(协议、端口和所有)。

我已经测试了 URL 我希望应用程序通过向浏览器提供 URL 来调用并且它正确 returns PDF 文档。

有人想过强制插件获取我提供的 URL 吗?

因此,在重写 jquery.media 插件后,由于其复杂性,我和 Greg 找到了解决方案。实际上,扩展类型必须在 url 中指定。例如,url '/mypdfs/my.pdf' 会工作,但 url 'mypdfs/123' 不会,因为 jquery.media 无法确定文件类型。解决此问题的一种方法是发出 ajax HEAD 请求并获取内容类型,然后将适当的扩展类型作为选项传递给媒体调用。

$.ajax({
    type: "HEAD",
    async: true,
    url: "http://myurl.com/file",
    success: function(message, text, response){
        var contentType = response.getResponseHeader('Content-Type');
        // Map content types to extension type
        $('.media').media({type: extensionType});
    }
});

此外,Malsup 的库似乎无人维护。我们重写了目前可以找到的库 here。我们将在时间允许的情况下将 Content-Type 映射添加到文件扩展名,以便更灵活地实施。欢迎提出拉取请求。