gpt4 book ai didi

coldfusion - 在 ColdFusion 模板中捕获请求超时

转载 作者:行者123 更新时间:2023-12-04 05:21:51 27 4
gpt4 key购买 nike

我有一个 ColdFusion 模板,它将通过 ajax 调用。
该模板的超时秒数如下:

<cfsetting showdebugoutput="true" requesttimeout="2" />

但是如果发生超时,我不会收到错误消息。有没有办法通过 Ajax 捕获超时并正确响应?

最佳答案

I get no error message back



你有什么要回来的吗?您的响应仍应包含 ColdFusion 生成的文本。您是否使用过 Chrome、fire bug 或任何带有网络工具的浏览器,这些工具允许您查看响应以查看您是否正在返回无法使用的东西?您是否正在使用任何可能抑制客户端失败的成功/失败回调函数?如果以下建议没有帮助,我会发布您的 JS 并重新标记您的问题。

话虽如此:任何时候在请求超时到期后您执行任何操作时,您都会希望延长超时时间。 onError 和 try/catch 在超时后只有几个 MS 对错误使用react,因此发送消息或记录错误也会失败。如果您尝试发送电子邮件或写入文件,那么您的 CF 错误消息会说您的 cfmail 或 cffile 操作超时(技术上),但这不是导致初始错误的原因。

如果您知道超时是多少,您可以简单地将 requestTimeout 重置为更大的值。
<cfsetting requesttimeout="2">
<cftry>
<!--- some stuff that takes more than 2 seconds --->
<cfcatch type = "any">
<cfsetting requesttimeout="5">
<!--- logging / error handling for timeout --->
<!--- NOTE!! This does not add 5 seconds, it adds 3. --->
<!--- The value of requestTimeout is the total time of the timeout. --->
</cfcatch>
</cftry>

或者,如果您不知道当前超时值,则可以添加时间。
<cftry>
<!--- some stuff that takes more than your timeout --->
<cfcatch type = "any">
<!--- You must first create your object to hold the requestMonitor. --->
<cfset monitor = createObject("java", "coldfusion.runtime.RequestMonitor") />
<!--- Then you need to reset your request timeout --->
<!--- add 5 seconds to the timeout --->
<cfsetting requesttimeout=monitor.getRequestTimeout()+5>
<!--- logging / error handling for timeout --->
</cfcatch>
</cftry>

您也不必在 try/catch 块中执行此操作,如果您在 application.cfc 中定义了一个 onError 事件处理程序,则可以将其包含在您的 onError 事件处理程序中。

关于coldfusion - 在 ColdFusion 模板中捕获请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601465/

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