【问题标题】:CFERROR causing browser to display Coldfusion source codeCFERROR 导致浏览器显示 Coldfusion 源代码
【发布时间】:2014-11-02 06:00:48
【问题描述】:

当出现异常错误时,Coldfusion 会抛出该错误。我用

处理它
<cferror
    template = "exception.cfm"
    type = "exception"
    mailTo = "webmaster@mydomain.com"> 

这适用于“异常”错误。还有验证错误。但是由于我想同时捕获两者,所以我输入了 type="request" ,它应该可以捕获两者:

<cferror
    template = "exception.cfm"
    type = "request"
    mailTo = "webmaster@mydomain.com"> 

问题是当我输入 type="request" 并发生异常时,正在显示 exception.cfm,并且所有 Coldfusion 源代码都显示在浏览器的源代码查看中!如果我输入 type="exception",它工作正常。这很奇怪,无论如何我都不希望 CF 代码在浏览器中显示,但确实如此。这是一些 CF 管理员设置问题还是 CF9 错误?

【问题讨论】:

  • 您已经得到了答案,但还有一个问题要问您:如果您使用的是 CF9,为什么还要使用 &lt;cferror&gt;,而不是 Application.cfc 的 onError()?
  • 要是有人能告诉我怎么做就好了。我对 Application.cfc 很陌生,我开始阅读它。我将如何使用上面的模板编写 onError 代码?
  • 1) 尝试实现一些东西; 2) 如果/当你遇到问题时,记录你做了什么,问题是什么,以及你采取了哪些调查步骤。然后在这里用所有这些信息提出一个问题;-)

标签: exception-handling coldfusion coldfusion-9


【解决方案1】:

当错误类型为 Request 时,您不能使用 CFML 标签。这就是您的 ColdFusion 源代码显示在浏览器中的原因。但是当错误类型为Exception时,可以使用CFML标签、函数。查看documentation 了解更多信息。

使用 Request 类型,您可以使用九个 CFML Error 变量,例如 Error.Diagnostics,用数字 # 符号将它们括起来。要了解更多,请参阅cferror documentation

我希望这对你有帮助。 :)

【讨论】:

  • 感谢您的洞察力。在阅读 CFERROR 文档时,我永远不会发现这一点。奇怪的是,为什么必须对 Request 进行任何不同的处理。我的异常页面上有那个 error.diagnostics ......只有当 Request 工作时。我不得不说,CF 的错误处理非常奇怪。
  • 阅读 CFERROR 文档我永远不会发现这一点 当然你会,但有时你必须仔细阅读这些文档——而且不止一次。我记得第一次也错过了它;)我们都犯了这个错误。
  • @Leigh 当访问者在网站上遇到 Request 错误时,如果没有 CFMAIL 工作,我将如何收到通知?如果我不能给自己发邮件,有没有办法可以在某个地方记录它?
  • 今年是 2021 年,这个答案让我摆脱了困境。它超级隐藏在文档中! helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/…
猜你喜欢
  • 2011-09-20
  • 2015-10-05
  • 2020-03-08
  • 2017-11-10
  • 2020-06-28
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多