coldfusion - 如何在 ColdFusion 中向客户端发送 HTTP 状态代码和响应消息?

标签 coldfusion cfc

我正在实现单点登录功能。我有一个 ColdFusion 应用程序,它从 Java 应用程序(POST 请求)中获取输入参数。我需要做的是返回状态代码和说明以指示用户是否有权访问以及如果用户无权访问我的 CF 应用程序的失败原因。
像下面这样:
enter image description here

我创建了一个 cfc 并将其作为 API 提供,以允许 Java 用户将他们的 UserName、CustomerID 传递给我的 CF 应用程序。
我需要在同一个文件中编写返回响应逻辑吗?就像一个“抛出”错误代码(cfthrow)的函数。

或者我可以使用“cfheader”....像这样:

<cfif form.CustomerId EQ queryname.CustID>
<CFHEADER 
    STATUSCODE="200"
    STATUSTEXT="Success">

<cfelse>
 <CFHEADER 
    STATUSCODE="400"
    STATUSTEXT="Insufficient Input">
</cfif>

任何人都可以在这里帮助我吗?

最佳答案

您可以使用:

component restpath = "your/rest/path" rest="true"
{
  remote void function errorTest()
    httpmethod = "GET"
    restpath   = ""
  {
    cfheader(
      statuscode = 401,
      statustext = "Invalid Password"
    );

    // or

    restSetResponse({
      status = 401,
      headers = { explanation = "Invalid Password" }
    });

    // or, using Java

    getPageContext()
        .getResponse()
        .getResponse()
        .sendError( JavaCast( 'int', 401 ), "Invalid Password" );

    // or, using the deprecated setStatus(int,string) method in Java

    getPageContext()
        .getResponse()
        .getResponse()
        .setStatus( JavaCast( 'int', 401 ), "Invalid Password" );
  }
}

注意:我还没有找到直接使用 restSetResponse() 设置消息的方法所以这会返回一个带有消息的自定义 header 。

关于coldfusion - 如何在 ColdFusion 中向客户端发送 HTTP 状态代码和响应消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45009300/

相关文章:

coldfusion - cfmodule可以将值返回到调用者的本地范围吗?

coldfusion - CFC 扩展同级文件夹

sql - 当所有字段都是可选的时更新查询

coldfusion 查询循环不合作

javascript - 有没有办法使用 XMLHttpRequest() 将 json 发送到远程 cfc?

Jquery 无法调用 Coldfusion cfc

coldfusion - 如何以<60秒的间隔运行ColdFusion计划的任务?

java - 替换显示为编码的特殊字符

ColdFusion CSRF XSS 攻击预防

jquery - cfcomponent 中的 cfquery 未返回 Coldfusion 9 中的最新结果