2

FORMが次のようなColdFusionWebページからPOSTされるASP.NetHTTPHandlerがあります。

<form name="sendToHandler" action="http://johnxp/FileServiceDemo2005/UploadHandler.ashx" method="post">
<input type="hidden" name="b64fileName" value="fileservice.asmx.xml" />
<input type="hidden" name="strDocument" value="Document" />
<input type="submit" name="submitbtn"  value="Submit" />

この.Netハンドラーが文字列をPOSTINGColdFusionページに返すための最良の方法は何ですか?

編集更新2009年8月14日:

.ashxファイルで思いついた解決策は、ハンドラーをPOSTした.cfmファイルのURLを保存し、ColdFusionに通信する結果文字列をクエリ文字列に追加することです。私のCFの同僚は、このクエリ文字列データの有無を使用して、それに応じて.cfmWebページをフォーマットします。

public void ProcessRequest(HttpContext context)
    {
        string returnURL = context.Request.ServerVariables["HTTP_REFERER"];  // posting CFM page
        string message = UploadFile(context);    // handles all the work of uploading a file
        StringBuilder msgReturn = new StringBuilder(returnURL);
        msgReturn.Append("?n=");
        msgReturn.Append(HttpUtility.UrlEncode(TRIMrecNumAssigned));
        msgReturn.Append("&m=");  // this is just a msg with performance data about the upload operation (elapsed time, size of file, etc.)
        msgReturn.Append(HttpUtility.UrlEncode(message));
        context.Response.Redirect(msgReturn.ToString());
    }
4

3 に答える 3

13

ProcessRequest メソッドの応答オブジェクトに文字列を直接書き込むだけです。

public void ProcessRequest(System.Web.HttpContext context)
{
    context.Response.Write(mystring);
}
于 2009-07-29T18:20:37.140 に答える
1

HTTP ハンドラーから JSON を生成し、それを使用jquery.postしてフォーム データを送信し、ColdFusion ページで結果を取得できます。

于 2009-07-29T20:16:33.477 に答える
0

返される内容を ColdFusion に知らせたい場合は、実際には 2 つの方法があります。

1 つ目は、フォームに文字列を返し (womp の提案に従って)、2 番目のフォームを送信するか、その他の方法でブラウザーから処理することです。フォーム内のすべての値がユーザー提供ではなく提供されているように見えるため、これは私が行うことではありません。

2 番目の方法は、CF がフォーム ポスト自体を処理することです。フォームから渡される値が CF で使用可能であると仮定すると、CFHTTP を使用してフォーム ポストを「偽装」できます。CF は結果を直接返し、そこから応答を処理できます。

于 2009-07-29T20:13:41.067 に答える