我(我认为)在Railo 4.1.1.009下的cfhttp中有一个曲奇问题。
我的代码执行两步http调用。第一步对远程应用程序执行授权。如果成功,远程服务器将返回一个授权cookie,该授权cookie将被提取并传递给第二个调用,如下所示:
<cfhttp url="http://remoteserver/targetPath" port="xxxx" method="get" result="Local.response" throwonerror="true" redirect="false">
<cfhttpparam name="Action" value="Ping" type="URL" />
<cfhttpparam name="mansession_id" value="#Local.result.authCookie#" type="cookie" />
</cfhttp>http呼叫是成功的,但是响应本质上说我没有授权。(这就是在这种情况下“拒绝许可”的真正含义)。
<response='Error' message='Permission denied'... />但是,完全相同的代码(从相同的框中运行)在CF9中成功:
<response='Success' ping='Pong' ... />我双重检查了来自第一个cfhttp调用的响应头,并验证了我将正确的#Local.result.authCookie#值传递给第二个调用:
set-cookie : mansession_id="932a4086";AUTHCOOKIE string 932a4086由于一切都一样,除了运行cfml的引擎之外,我得出的结论是,cfhttp可能没有正确传递cookie。我试过很多东西,但现在我已经没有主意了。任何关于如何解决问题或进一步排除问题的想法都将不胜感激。
更新:
我决定尝试不同版本的Railo (因为Express版本非常容易),并发现代码在3.3.3.001 (但不是4.0.4.001)下工作。所以在4.x中一定有什么东西坏了。
发布于 2013-12-12 21:04:01
我将安装费德勒,然后将proxyServer=localhost和proxyPort=8888属性添加到CFHTTP调用中。然后,您可以通过fiddler观看HTTP请求的发出。如果您的CF服务器位于另一个机器上,您仍然可以在桌面上运行Fiddler,只需在Fiddler的设置中打开“允许其他机器连接”,并在proxyServer属性中提供您的计算机名而不是localhost。
你所处的环境很好,你可以在某些环境中工作,而不是其他环境,所以你应该能够看到不同的情况。
您可以手动比较http请求,也可以将Fiddler配置为使用扩散工具。选择两个请求,然后右击->比较.我强烈推荐无与伦比3从滑板车软件作为一个不同的工具。
请用你发现的更新你的问题,因为我想知道结果。
https://stackoverflow.com/questions/20550075
复制相似问题