通过 cfhttp 连接到更智能的统计数据

connecting to smarter stats through cfhttp

我正在尝试通过登录 window 连接到更智能的统计网站,并将统计信息加载到 fancybox 页面

到目前为止,这是我的代码:但这似乎不起作用

<cfhttp method="post" url="https://stats.ezhostingserver.com/" resolveurl="true" redirect="true">
    <cfhttpparam type="FORMFIELD" name="ctl00$MPH$txtUserName" value="test.ca">
    <cfhttpparam type="FORMFIELD" name="ctl00$MPH$txtPassword" value="mypwd!">
    <cfhttpparam type="FORMFIELD" name="ctl00$MPH$txtSiteId" value="12343">
</cfhttp>
<cfif cfhttp.statuscode EQ '200 OK'>
    <cfhttp result="results" url="https://stats.ezhostingserver.com/default.aspx"/>
    <cfoutput>
        #results.filecontent#
</cfoutput>     
</cfif>

问题是每次我加载页面时

http://domain.in/index.cfm 它回到 http://domain.in/stats/Login.aspx

我正在使用 hostek 网站提供域的统计数据

您的代码以这种方式运行的原因是因为您在 cfhttp 标记中的初始 URL 返回 HTTP 302 重定向。然后因为您将 cfhttp 标记的 redirect 属性设置为 true 它实际上正在执行重定向。查看该属性的 documentation

redirect - If the response header includes a Location field AND ColdFusion receives a 300-series (redirection) status code, specifies whether to redirect execution to the URL specified in the field:

  • yes: redirects execution to the specified page.
  • no: stops execution and returns the response information in the cfhttp variable, or throws an error if the throwOnError attribute is True.
    The cfhttp.responseHeader.Location variable contains the redirection path. ColdFusion follows a maximum of four redirects on a request. If there are more, ColdFusion functions as if redirect = "no".
    Note: The cflocation tag generates an HTTP 302 response with the url attribute as the Location header value.

因此,不要为您的 cfhttp 请求使用初始 URL,请尝试使用它重定向到的 URL。并将 redirect 属性设置为 false。但请注意,将该属性设置为 false,如果标签获得重定向状态代码,则会抛出错误,因此您需要对其进行处理。

示例:

<cfhttp method="post" 
        url="https://stats.ezhostingserver.com/Login.aspx" 
        resolveurl="true" 
        redirect="false">