首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ColdFusion发布OnError

使用ColdFusion发布OnError
EN

Stack Overflow用户
提问于 2014-02-27 10:48:15
回答 2查看 1.5K关注 0票数 3

我正在尝试将我的cferror标记(在application.cfm中)替换为onError方法(在application.cfc中将取代application.cfm)。但我正面临着一个问题。

问题是:

对于onError,如果我试图显示一些用户友好的消息,它将显示在发生错误的位置的html中。 例如,如果在页脚中出现异常,则该消息将显示在站点的页脚中,并且还会显示站点上的所有其他内容(Html)。 但是当我使用 cferror 标记时,如果出现异常,则只显示在cferror标记中指定的模板。

所以,

是否有任何方法使onErrorcferror标记一样工作?

(以显示用户友好信息的方式)

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-27 11:48:10

你所描述的是有道理的。输出缓冲区已经部分填充了客户端的响应。

在onError方法中,在application.cfc中,您应该能够使用<cfcontent reset=true>来清空缓冲区,然后您可以发送任何您喜欢的响应。

票数 6
EN

Stack Overflow用户

发布于 2014-02-27 11:11:09

把这个放进你的Application.cfc

代码语言:javascript
复制
<cffunction name="onError" returnType="void" output="true">
    <cfargument name="exception" required="true">
    <cfargument name="eventname" type="string" required="true">
    <cfset var errortext = "">
    <cflog file="myapperrorlog" text="#arguments.exception.message#">
    <cfsavecontent variable="errortext">
    <cfoutput>
    An error occurred: http://#cgi.server_name##cgi.script_name#?#cgi.query_string#<br />
    Time: #dateFormat(now(), "short")# #timeFormat(now(), "short")#<br />
    <cfdump var="#arguments.exception#" label="Error">
    <cfdump var="#form#" label="Form">
    <cfdump var="#url#" label="URL">
    </cfoutput>
    </cfsavecontent>
    <cfmail to="emails@yourdomain.com" subject="Error: #arguments.exception.message#" attributeCollection="#request.mailDetails#">
        #errortext#
    </cfmail>
    <cflocation url="errors.cfm">
</cffunction>

创建一个通用的errors.cfm页面,在其中您可以向用户显示一些自定义消息,您可以向用户添加任何您想要显示的消息,在邮件中,您可以添加自己的电子邮件,所以每次出现错误时,您都会收到一封电子邮件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22066204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档