使用cfhttp发布数据

Ste*_*ven 0 coldfusion post http

在我的网站上,我将数据通过查询字符串传递到页面.我想改变它,以便将数据作为POST参数传递.

我之前的陈述看起来像这样:

<cf_location url="mypage.cfm?id=123">
Run Code Online (Sandbox Code Playgroud)

我用以下代替:

<cfhttp method="post" url="mypage.cfm">
    <cfhttpparam name="theID" type="URL" value="123">
</cfhttp>
Run Code Online (Sandbox Code Playgroud)

但是cfhttp没有发布任何内容.在Firebug中,NET选项卡中没有任何内容显示,并且该代码应该运行时没有任何反应.

我做错了吗?我在cfhttpparam中使用了正确的类型吗?我对ColdFusion很新,所以这对我来说很难.

Ben*_*oom 7

假设您希望服务器而不是客户端看到结果,您可以使用CFHTTP.正如Edward指出的那样,客户端永远不会看到交互,因为它只在服务器和(在您的示例中)本身之间(尽管您需要一个完全限定的URL,包括主机名或IP).

在您的示例中,有一些错误:

  • 您需要一个完全限定的URL
  • 您使用的是URL变量,而不是FORM(formField)变量

通过一些调整(特别是URL)应该可以工作:

<cfhttp method="post" url="http://localhost/mypage.cfm">
    <cfhttpparam name="theID" type="formField" value="123">
</cfhttp>
Run Code Online (Sandbox Code Playgroud)

请记住,响应将返回到服务器,因此最终用户永远不会看到mypage.cfm.响应将在CFHTTP变量中返回给服务器(您可以使用"result"属性更改它).

除非您无法控制mypage.cfm,否则编辑它以获取URL变量或使用structAppend()将URL变量复制到FORM范围可能更容易.