ColdFusion CFHTTP Post正在做第二个GET请求

时间:2009-06-03 22:06:42

标签: post coldfusion get cfhttp

我正在使用ColdFusion 8。

我正在向远程服务器发送CFHTTP帖子。远程站点查看了他们的日志,他们说我的代码正在执行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#">

有没有人知道为什么他们在我的POST后立即看到第二个GET请求?由于这个(我们认为)

,它正在破坏会话并且不能正确地回滚页面

我肯定没有做GET,我只做一次POST。

感谢,

5 个答案:

答案 0 :(得分:5)

我猜你得到第二个GET的原因是你的CFOUTPUT将检索到的页面内容输出到浏览器中,然后当从检索到的页面呈现图像或来自该内容的某些东西时,它就像一个GET。

请记住,CFHTTP不是有状态的。我的意思是每个使用CFHTTP的请求都会创建一个新会话。您可以通过在请求中传入CFID / CFTOKEN和CFHTTPPARAM来获得CFHTTP以继续现有会话。这可以解释您的会话问题。

答案 1 :(得分:0)

redirect="false" //maybe?

不确定......自从医生说......

  

如果响应头包含a   位置字段和ColdFusion接收   300系列(重定向)状态   代码,指定是否重定向   执行到。中指定的URL   字段。

答案 2 :(得分:0)

好的,我切换到CF 5服务器,它停止了第二次GET。它现在正在做POST,所以它可能是CF 8的怪癖。

答案 3 :(得分:0)

如果您使用的是Firefox,请确保您已根据请求关闭了firebug和ySlow。他们两次点击您的网址来设置他们的数据,当您不知道他们正在这样做时,这可能是一个真正的问题。

此外,除非您需要,否则请尝试关闭重定向。

答案 4 :(得分:-1)

此代码是否在自定义CF标记内?如果是,那么请致电

<mytag>...</mytag>

<mytag />

调用自定义标签TWICE! (一次用于开始标记,一次用于结束。)