4

ColdFusion 8 を使用しています。

リモートサーバーへの CFHTTP Post を実行しています。リモート サイトがログを確認したところ、コードが POST を実行し、すぐに 2 番目の GET 要求を実行しているとのことです。

これが私のコードです(URLは変更されています):

<cfhttp url="https://www.theurlofthesite.com" method="POST" port="443" resolveurl="yes" redirect="yes">
<cfhttpparam type="FORMFIELD" name="type" value="SALES">
<cfhttpparam type="FORMFIELD" name="account" value="10003">
<cfhttpparam type="FORMFIELD" name="Submit" value="Submit+Request">
</cfhttp>

<Cfoutput>#cfhttp.fileContent#</CFOUTPUT>

<cfdump var="#cfhttp#">

POST の直後に 2 番目の GET リクエストが表示される理由を知っている人はいますか? これにより、セッションが破棄され、ページが正しく返されません(私たちは考えています)

私は間違いなく GET を行っていません。1 つの POST だけを行っています。

ありがとう、

リッチ

4

5 に答える 5

5

2番目のGETを取得する理由は、CFOUTPUTが取得したページのコンテンツをブラウザに出力し、そのコンテンツの画像などが取得したページからレンダリングされると、GETとして機能するためだと思います。

CFHTTPはステートフルではないことに注意してください。これは、CFHTTPを使用した各リクエストが新しいセッションを作成することを意味します。リクエストでCFHTTPPARAMを使用してCFID/CFTOKENを渡すことにより、CFHTTPに既存のセッションを続行させることができます。これはあなたのセッションの問題を説明するかもしれません。

于 2009-06-04T00:50:47.853 に答える
0

Firefoxを使用している場合は、リクエストに対してFirebugとySlowがオフになっていることを確認してください。彼らはあなたのURLを2回起動してデータを設定しますが、それを実行していることを知らない場合は実際の問題になる可能性があります。

また、必要がない限り、リダイレクトをオフにしてみてください。

于 2009-06-08T12:59:18.910 に答える
0
redirect="false" //maybe?

わかりません...ドキュメントが言ったので...

応答ヘッダーに Location フィールドが含まれていて、かつ ColdFusion が 300 番台 (リダイレクト) ステータス コードを受信した場合、フィールドで指定された URL に実行をリダイレクトするかどうかを指定します。

于 2009-06-03T22:26:59.673 に答える
0

OK、CF 5 サーバーに切り替えたところ、2 回目の GET が停止しました。ただ今やっているだけなPOSTので、CF 8との癖かもしれません。

于 2009-06-04T17:06:25.797 に答える
-1

このコードはカスタム CF タグ内にありますか? もしそうなら、電話する

<mytag>...</mytag>

また

<mytag />

カスタムタグを 2 回呼び出します! (開始タグに 1 回、終了タグに 1 回。)

于 2009-06-03T23:56:00.913 に答える