2012-07-10 39 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的行为。

希望这会有所帮助。

相关问题