CF11 vs.CF2018 REST 404响应

时间:2019-06-18 23:51:01

标签: rest coldfusion

我有一个REST服务,它可以输出JSON或返回404,具体取决于是否存在匹配项。在现有的CF11设置中,我可以使用

生成404
<cfthrow errorcode="404">

,但这显然在CF2018中不再起作用。为了生成404,我需要使用Java(如此处指示:How can I send HTTP Status Code and a Response messages to the client in ColdFusion?):

<cfscript>
    getPageContext()
    .getResponse()
    .getResponse()
    .sendError( JavaCast( 'int', 404 ), "" );
</cfscript>

这行得通,但是这让我感到好奇,所以我创建了一个小测试页(不是REST服务):

<cfparam name="URL.method" default="cfthrow" >
<cfif URL.method IS "cfthrow">
    <cftry>
        <cfthrow errorcode="404">
        <cfcatch></cfcatch>
    </cftry>
</cfif>
<cfif URL.method IS "cfheader">
    <cfheader statuscode="404">
</cfif>
<cfif URL.method IS "java">
    <cfscript>
        getPageContext()
            .getResponse()
            .getResponse()
            .sendError( JavaCast( 'int', 404 ), "" );
    </cfscript>
</cfif>

我也无法在这里工作。但是cfheader确实可以正常工作,并且Java之一也可以正常工作。谁能解释为什么所有这些差异?仅供参考,我正在运行Win2012 / IIS。谢谢。

p.s。借助CF11上现有的REST服务,我永远无法获得

<cfheader statuscode="404">

要么工作,要么生成404。在我说404不起作用的所有情况下,返回的都是空白页。

0 个答案:

没有答案