【问题标题】:Fixing Chrome's content-disposition comma issue in IIS修复 IIS 中 Chrome 的内容处置逗号问题
【发布时间】:2012-12-11 23:48:38
【问题描述】:

Chrome 从 16 版开始对包含不带引号的逗号的内容处置标头变得非常严格。虽然网络上的大多数网站都会面临用户修复服务器的压力,但这对于没有人愿意接触的小型或内部 Intranet 应用程序来说并不容易。

Thread on Chrome's forum about the issue, what works and what doesn't.

简短的回答是 Content-Disposition 标头(如果包含)需要在文件名中没有逗号或引用文件名。

我们有一个这样的系统处理文档管理,触摸代码库不是一种选择,但是任何名称中带有逗号的文件都会在 Chrome 中引发错误。我该如何解决这个问题?

在这里做一些Jeopardy! thing,但对我的回答不是 100% 有信心,并且会感谢 cmets/alternatives

【问题讨论】:

    标签: google-chrome iis iis-7 url-rewriting http-headers


    【解决方案1】:

    您可以使用 IIS 的 URL 重写模块来完成此操作,该模块也可以处理标题。

    关键是要匹配 Content-Disposition,其中包括 filename= 并且文件名没有引号。

    <system.webServer>
        <rewrite>
            <outboundRules>
                <rule name="Chrome Comma Fix">
                    <match serverVariable="RESPONSE_Content_Disposition" pattern="^(.*)(filename=)(?!&quot;)([^&quot;]*)(;.*)?$" />
                    <action type="Rewrite" value="{R:1}{R:2}&quot;{R:3}&quot;{R:4}" />
                </rule>
            </outboundRules>
        </rewrite>
    </system.webServer>
    

    不过我还没有测试过。

    【讨论】:

    • 对于那些(像我一样)因“我还没有测试过”而感到有点紧张的人,这很好用。
    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多