我正在使用Coldfusion页面,该页面从表单中获取信息并回发到同一页面。但是,我有一个CFHTTP URL字符串,我想要POST到一个PHP页面,我也希望在一个单独的页面中打开(仍然保持原始的POST页面打开。我认为CFHTTP将接受“目标 - 空白”值,但它没有。这是我的代码:
<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>
我应该使用另一个CF元素而不是CFHTTP吗?
答案 0 :(得分:7)
这里有一些误解。 CFHTTP执行服务器到服务器通信。 CF中发生的任何事情都会留在CF中(以打造一个口号)。你在target =“_ blank”中所指的是客户端上发生的事情 - 在“浏览器”中打开一个单独的“页面”。 CFHTTP不使用浏览器。它不呈现内容。它只发出带有各种标头和参数的HTTP请求,并为您提供响应 - 所有这些都在您的cf代码中的服务器上。您必须对内容“执行”操作才能将其发送回浏览器。
所以你需要做的是:
希望这有帮助。