2

フォームから情報を取得して同じページに投稿するColdfusionページに取り組んでいます。ただし、PHPページにPOSTしたいCFHTTP URL文字列があり、別のページでも開きたい(元のPOSTページは開いたままにしておきます。CFHTTPは「target--blank」値を受け入れると思いましたが)そうではありません。私のコードは次のとおりです。

<cfhttp method="Post" url="https://www.foo.com/foocorp/restrict/fpdf/letter.php" result="adverseResponse">
            <cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0"> 
            <cfhttpparam type="Header" name="TE" value="deflate;q=0">
                <cfoutput>

                <cfif isdefined( "b_firstname" )><cfhttpparam name="B_FIRSTNAME" type="formField" value="#B_FIRSTNAME#"></cfif>
                <cfif isdefined( "b_lastname" )><cfhttpparam name="B_LASTNAME" type="formField" value="#B_LASTNAME#"></cfif>
                <cfif isdefined( "prop_address" )><cfhttpparam name="PROP_ADDRESS" type="formField" value="#PROP_ADDRESS#"></cfif>
                <cfif isdefined( "prop_city" )><cfhttpparam name="PROP_CITY" type="formField" value="#PROP_CITY#"></cfif>
                <cfif isdefined( "prop_state" )><cfhttpparam name="PROP_STATE" type="formField" value="#PROP_STATE#"></cfif>
                <cfif isdefined( "prop_zip" )><cfhttpparam name="PROP_ZIP" type="formField" value="#PROP_ZIP#"></cfif>

                </cfoutput>
        </cfhttp>

CFHTTPの代わりに使用する必要がある別のCF要素はありますか?

4

1 に答える 1

7

ここにはいくつかの誤解があります。CFHTTPは、サーバー間の通信を行います。CFで何が起こっても、CFにとどまります(スローガンを作成するため)。target = "_ blank"で参照しているのは、クライアントで発生していることです。つまり、別の「ページ」が「ブラウザ」で開かれます。CFHTTPはブラウザを使用しません。コンテンツはレンダリングされません。さまざまなヘッダーとパラメータを使用してHTTPリクエストを発行し、応答を返します。すべて、cfコード内のサーバー上にあります。コンテンツをブラウザに送り返すには、コンテンツを「実行」する必要があります。

したがって、実行する必要があるのは次のいずれかです。

  • CF(adverseResponse.filecontent)から応答を取得し、ポップアップなどを使用して別のページに配置します。このようにして、ブラウザの「プロキシ」として機能します。
  • CFHTTPルートとユーザーjqueryまたはJavascriptなどを破棄して、ブラウザーで直接PHPに投稿する動作を暗示します。

お役に立てれば。

于 2012-07-10T15:15:06.593 に答える