jyo*_*eph 4 ajax coldfusion jquery
我有一个模板设置,我正在通过jQuery进行ajax调用.我传递了一个名为"method"的URL参数,然后通过每个方法执行<cfswitch>来确定要执行的代码块.
问题是,我不希望在ajax调用之外访问此页面.换句话说,如果有人只是在他们的浏览器中键入URL,我不希望模板运行.
有没有办法做到这一点?我想在.php中有一种方法可以告诉它是什么类型的请求.Coldfusion中是否存在这样的事情?还是有什么建议?
jQuery X-Requested-With使用值为"XMLHttpRequest" 的标头集注入请求.在coldfusion中,您可以通过转储HTTP请求来查看:
<cfdump var="#getHTTPRequestData()#">
Run Code Online (Sandbox Code Playgroud)
因此,您需要做的就是测试该标头,例如:
<cfset reqData = getHTTPRequestData()>
<cfif structKeyExists(reqData.headers,"X-Requested-With") and reqData.headers["X-Requested-With"] eq "XMLHttpRequest">
Got an ajax request
<cfelse>
<!--- do something else, or nothing --->
</cfif>
Run Code Online (Sandbox Code Playgroud)
如果你正在使用CF8,"它有一个功能".:)
客户端:使用填充视图的cfajax标签(即cfdiv,cfwindow,cfgrid,cfinput ......)
服务器端:VerifyClient()在.cfm模板上使用
要么:
客户端:用于<cfajaxproxy>构建JS到远程CFC代理
服务器端:使用<cffunction name="remoteMethod" access=remote verifyClient="true">