我可以在JQuery中访问ColdFusion会话吗?

我有一个ColdFusion页面用于登录。 单击登录按钮由JQuery函数处理。 身份validation本身是假的,并且发生在函数本身内部。 一旦成功,我将内容从另一个ColdFusion页面加载到第一页。 我能以任何方式在JQuery的ColdFusion会话中设置变量吗?

在最严格意义上的问题,不,jQuery / javaScript无法直接访问ColdFusion变量,Kevin B是正确的。 但是,您可以使用AJAX(这是JavaScript,而不是jQuery,虽然jQuery有一些方法可以轻松实现)将数据发送到ColdFusion,而无需在浏览器中进行完整的往返。 这样做会导致ColdFusion在URLFORM范围中创建变量,具体取决于您选择的方法。 遗憾的是, FORMURL变量仅在请求期间存在,因此您可以使用ColdFusion设置您需要使用刚刚发送的URLFORM变量设置的任何SESSION变量。

jQuery有一些方法可以做到这一点。

  • jQuery.ajax()或$ .ajax()
  • jQuery.post()或$ .post()
  • jQuery.get()或$ .get()

一个非常简单的例子可能看起来像这个jQuery:

  

setVariable.cfm中的CF代码可能看起来像

   Session user was set.   Oh, Crap! Something bad happened! (#cfcatch.message#)    

不,您在客户端访问的所有内容都是会话/客户端令牌cookie。 但是,您可以设置自定义cookie的值,然后使用coldfusion访问该cookie。