2012-07-10 40 views
2

我正在從一個窗體獲取信息並回發到同一頁面的Coldfusion頁面。然而,我有一個CFHTTP URL字符串,我想要POST到一個PHP頁面,並且我想在一個單獨的頁面中打開(仍然保留原來的POST頁面打開,我認爲CFHTTP會接受一個「目標空白」值,但。它不會在這裏是我的代碼:?CFHTTP可以接受TARGET值嗎?

<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元素

回答

7

這裏有一些誤解CFHTTP確實服務器到服務器通信不管發生什麼事情。在CF中停留在CF上(爲了創造一個口號),你指的是target =「_ blank」是客戶端上發生的事情 - 其中一個se parate「page」在「瀏覽器」中打開。 CFHTTP不使用瀏覽器。它不呈現內容。它只是發出帶有各種頭文件和參數的HTTP請求,併爲您提供迴應 - 所有內容都在您的cf代碼中的服務器上。您必須「做」某些內容才能將其發送回瀏覽器。

所以,你需要做的是兩種:

  • 採取從CF(adverseResponse.filecontent)的響應,並使用彈出窗口或任何其放置在單獨的頁面中。通過這種方式,您可以充當瀏覽器的「代理」。
  • 放棄CFHTTP路由和用戶jquery或Javascript或其他任何東西來暗示在瀏覽器中直接發佈到PHP的行爲。

希望這會有所幫助。

相關問題