gpt4 book ai didi

coldfusion - 如何让 setHeader 覆盖现有标题?

转载 作者:行者123 更新时间:2023-12-04 08:36:02 25 4
gpt4 key购买 nike

我正在开发 ChromeLogger 的 CF 接口(interface)扩展程序 ( shameless plug ),它使用 HTTP header 将数据从服务器端语言记录到 Chrome 控制台。

在请求过程中,log()方法可以被多次调用。对于每个调用,我都以 ChromeLogger 正确显示数据所需的格式编写标题。在 CF10 中,这工作正常 - 每次后续调用 setHeader()用相同的名称覆盖先前设置的标题。然而,在 CF9 中,我看到多个具有相同名称的标题。

此示例代码演示了该问题:

<cfscript>
pc = getPageContext().getResponse();
pc.setHeader( "test-header", "value 1" );
pc.setHeader( "test-header", "value 2" );
pc.setHeader( "test-header", "value 3" );
</cfscript>

在 CF9 中,我看到三个名为“test-header”的 header ,每个 header 都有自己的值。在 CF10 中,我看到一个名为“test-header”的 header ,其值为“value 3”。根据 Java docs对于这种方法,后者是正确的(强调我的):

Sets a response header with the given name and value. If the header had already been set, the new value overwrites the previous one. The containsHeader method can be used to test for the presence of a header before setting its value.



使用 cfheader标签具有相同的结果,大概是因为它只是包装了 setHeader()方法。

我知道我可以在请求过程中建立 header ,然后调用 setHeader()最后一次通过 onRequestEnd() ,但我希望这个组件尽可能独立 - 最终用户修改代码来实现它的次数越少越好。

CF9 中还有其他方法可以覆盖现有的 header 吗?

最佳答案

看起来这可能是 ColdFusion 9 中的错误。https://bugbase.adobe.com/index.cfm?event=bug&id=3041696这个错误是 Adam Cameron 在 2010 年 6 月为 9.0 版输入的(据我所知)。它的状态为“延迟”,原因为“NotEnoughTime”。

关于coldfusion - 如何让 setHeader 覆盖现有标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com