在尝试解决有缺陷的<cfhttp>
SSL 实现时,我转而直接使用 COM 和 MSXML2.ServerHTTP。不幸的是,POST 数据未能到达目标页面。GET 工作,但我宁愿不使用它,因为我不知道是否记录了请求 url,如果我能提供帮助,我不想传递敏感数据。(我是不是太担心了?)
我的问题与此类似:http: //objectmix.com/xml-soap/87408-sending-post-variables-using-msxml2-serverxmlhttp-3-0-a.html
这是我的代码:
<cfset querystring = "?CustomerID=#CustomerID#&OrderDelRecipient=#OrderDelRecipient#&OrderCompany=#OrderCompany#&OrderTelephone=#OrderTelephone#&OrderNotes=#OrderNotes#&OrderDelStreet=#OrderDelStreet#&OrderDelCity=#OrderDelCity#&OrderDelState=#OrderDelState#&OrderDelZip=#OrderDelZip#">
<cfobject type="COM" action="Create" name="objSrvHTTP" class="MSXML2.ServerXMLHTTP.3.0">
<cfset urlstring = "http://www.pascaltechnologies.com/saveorder.cfm">
<cfset temp = objSrvHTTP.open("post", urlstring, false)>
<cfset temp = objSrvHTTP.setRequestHeader("Content-Type", "application/x-www-form-
urlencoded")>
<cfset temp = objSrvHTTP.send("#querystring#")>
<cfset FileContent = objSrvHTTP.responsetext>
<cfoutput>
#filecontent#
</cfoutput>
当我在被调用页面(saveorder.cfm)上检查表单变量时
<cfif Not IsDefined("CustomerID") OR NOT IsNumeric(CustomerID)>
ERR 609 - INVALID PARAMETERS PASSED.
<cfabort>
</cfif>
它们是空的,所以上面的代码被触发了。
这是因为我需要将响应复制到表单 var 吗?例如<cfset FORM.CustomerID = objSrvHTTP.CustomerID>
(您认为它没有必要,因为 GET 不需要它。)或者我只是没有正确实现某些东西?