バグのある SSL 実装を回避しようとして、<cfhttp>
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では必要ないので、必要ないと思うでしょう。)または、単に何かを正しく実装していませんか?