2009-06-03 61 views
3

我正在使用ColdFusion 8.ColdFusion CFHTTP Post正在執行第二個GET請求之後

我在做一個CFHTTP Post到遠程服務器。遠程站點查看了他們的日誌,他們說我的代碼正在執行POST,然後立即執行第二個GET請求。

這裏是我的代碼(網址已更改):

<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#"> 

有沒有人有,爲什麼他們看到我的文章之後第2個GET請求任何想法?它是搗毀會議,並沒有正確迴應頁面正是因爲這個(我們認爲)

我絕對沒有做一個GET,我只做一個POST。

感謝,

豐富

+0

您可以添加日誌詳細信息嗎?它是否在與遠程服務器上的POST相同的文件上發出GET?什麼是POST發佈的狀態碼? – Jayson 2009-06-04 12:45:05

+0

如果刪除cfoutput和cfdump部件,您是否仍然會得到相同的行爲? – Kip 2009-06-04 12:50:38

回答

0

好的,我切換到CF 5服務器,並停止執行第二個GET。它現在只是在做一個POST,所以它可能是CF 8的一個怪癖。

+0

如果是這樣,絕對看起來像一個bug ... – Kip 2009-06-05 02:51:38

0
redirect="false" //maybe? 

不知道...由於文檔說...

如果響應報頭包括 位置字段和ColdFusion接收 一300系列(重定向)狀態 代碼,指定是否將 執行重定向到中指定的URL字段。

+0

我試過重定向=「不」,但得到了相同的結果 – Rich 2009-06-03 22:35:09

-1

此代碼是否在自定義CF標籤內?如果是這樣,然後調用

<mytag>...</mytag> 

<mytag /> 

調用自定義標籤的兩倍! (一次爲開始標記,一次爲結束。)

+2

這並不能解釋爲什麼第二個命中是GET – Antony 2009-06-04 03:44:39

+0

儘管我不認爲這解釋了原始問題,但應該包括如何防止此行爲):以及任何對此方式工作原理感興趣的人都應該閱讀livedocs中的這一頁:http://livedocs.adobe.com/coldfusion /8/htmldocs/reuseCode_7.html – 2009-06-05 16:14:01

5

我猜你得到第二個GET的原因是你的CFOUTPUT輸出檢索到的頁面內容到瀏覽器,然後當一個圖像或東西從內容從檢索到的頁面呈現它充當GET。

請記住,CFHTTP不是有狀態的。我的意思是每個CFHTTP請求都會創建一個新的會話。您可以通過將CFID/CFTOKEN傳遞給請求中的CFHTTPPARAM,讓CFHTTP繼續現有會話。這可能會解釋您的會話問題。

+0

你可以測試這個..刪除cfdump標記,並將cfouput更改爲:

#HTMLEditFormat(cfhttp.fileContent)#
。這會向你顯示你正在得到什麼,並確保瀏覽器沒有提出任何後續請求。 – Kip 2009-06-04 12:54:29

0

如果您使用的是firefox,請確保您有螢火蟲,並且ySlow已根據您的要求關閉。當你不知道他們正在做這些事情時,他們會兩次啓動你的網站來建立他們的數據,並且可能是一個真正的問題。

此外,嘗試關閉重定向,除非你需要它。

+0

謝謝。在我切換回CF5(從CF8開始)後,第二個GET停止。奇怪的 – Rich 2009-06-09 14:59:19

相關問題