我想知道是否有人能告诉我这段代码出了什么问题,因为它不起作用,也不会给我任何错误。
使用这段代码,我试图访问一个组件,每当有人点击链接时,该组件都会更新DB表。
<cfajaxproxy bind="url:http://www.example.com/admin/CRM/linktracking.cfc" />
<cfscript>
SSLtype = (CGI.HTTPS EQ 'off')?'http://':'https://';
</cfscript>
<cfset domainname = CGI.SERVER_NAME>
<cfset domainURL = SSLtype&CGI.SERVER_NAME&CGI.SCRIPT_NAME&'?'&CGI.QUERY_STRING>
<script>
function insertTracking(href) {
var instance = new ajaxjsclass();
instance.setCallbackHandler();
<cfoutput>
instance.insertTrack(href,'#surveymain.contactid#','#domainname#','#domainURL#');
</cfoutput>
}
</script>
这是我试图访问的组件。
<cfcomponent>
<cffunction name="insertTrack" access="remote" returntype="void" >
<cfargument name="clickedURL" required="yes">
<cfargument name="contactid" required="yes">
<cfargument name="domainName" required="yes">
<cfargument name="domainURL" required="yes">
<cfquery name="q_inserttrack" datasource="dpsigweb">
update survey_tracking
set surveystarted = <cfqueryparam value="#now()#" cfsqltype="CF_SQL_TIMESTAMP">
where contactid= '#contactid#'
</cfquery>
<cfif ARGUMENTS.contactid NEQ ''>
<cfscript>
additionalInfo = '<b>Clicked URL</b> - <i>#ARGUMENTS.clickedURL#</i><br><br><b>From Site</b> - <i>#ARGUMENTS.domainURL#</i>';
gaCFC = CreateObject("component","mod_sigweb.components.guestaccount");
gaCFC.AddCorrespondenceCurDoctorProcedureRemote(
functionPassword = 'password',
contactid = '#ARGUMENTS.contactid#',
theMessage = additionalInfo,
statustype = 'Survey Started',
contactresult ='Survey Started'
);
</cfscript>
</cfif>
</cffunction>
</cfcomponent>
这就是我试图访问的功能:
<a href="http://dev.example.com/surveys/survey.cfm?id=#id#&contactid=#contactid#&doctorid=#doctorid#" onClick="insertTracking(this.href)" >
我怀疑我的<cfajaxproxy>
标记可能有语法错误,但当我按下链接时,我没有得到任何错误。
我将cfajaxproxy
更改为此
<cfajaxproxy cfc="linktracking" jsclassname="ajaxjsclass" />
但该功能似乎仍然不起作用。我甚至将组件和cfm文件移到了同一个文件夹中,但它仍然不起作用。
编辑:我忘了提到我在电子邮件模板中发送此代码。我不知道这有没有关系。我创建了一个测试页面,正在本地进行测试,我的代码运行良好。如果因此我需要更改某些内容,请让我知道
找到解决方案。我将更新查询代码直接放在页面上,因此当用户按下链接并打开页面时,查询将从那里运行,而不是从链接运行。
上面的代码运行良好,我只是遇到了问题,因为我是通过电子邮件向用户发送页面的。至少这是我所怀疑的。