如何跨域传递coldfusion客户端变量

时间:2010-02-01 17:46:22

标签: coldfusion cross-domain

我们正在构建冷敷电子商务解决方案(针对购物车解决方案提供商)。系统使用客户端变量。用户注册,登录和购物车功能将在客户的域上(例如:abc.com是非SSL),用户应该转移到我们的eshop域(这是完全不同的域,并且在SSL上,例如:{{ 3}})在结账时。在这种情况下,我应该如何处理客户端变量?当用户从abc.com重定向到xyz.com时,我不应该丢失任何设置(client.userid,client.cart和其他变量)。对于已登录的用户,购物车项目将存储在“CartTemp”表中。对于选择“没有装箱帐户结帐”的客户,购物车商品将存储在结构client.Cart。

4 个答案:

答案 0 :(得分:2)

您在哪里存储客户变量?如果在数据库中,那么您可以通过传递用户的CFID& CFTOKEN将链接中的值赋予eshop。 (然后,当CF查找与这些标识符对应的客户端变量时,它将找到先前由客户端域代码存储的记录。)这将要求两个站点都使用相同的客户端变量数据库,但是,这对你来说可能是可行的,也可能是不可行的。

如果你正在使用cookie或(上帝帮助你)注册表存储为客户端变量,你将需要提出一些其他机制来传输这些信息。 (你可以说,将所有信息打包成WDDX字符串,为此目的将其存储到数据库表中,将记录的ID传递给商店的链接,并将商店的代码解压缩到WDDX。)< / p>

答案 1 :(得分:0)

我不会依赖CFID和CFTOKEN。相反,当用户想要处理他们的订单时,您将在abc.com上创建一个UUID购物车ID,然后使用购物车ID重定向到xyz.com。

共享数据的最简单方法是使用共享中央数据库,但如果由于某种原因无法实现,则可以设置abc.com在xyz.com查询时返回XML数据集,如:

  1. 用户浏览商店 abc.com

  2. 用户点击“结帐” - 购物车     创建记录,用户是     使用cart uuid重定向到xyz.com

  3. 一旦在xyz.com上,服务器就会占用     购物车ID和查询abc.com     使用cfhttp或等效的
  4. abc.com返回xyz.com服务器     包含购物车详细信息的xml文档
  5. xyz.com创建基于订单记录     购物车内容和退货订单     处理表格给客户

答案 2 :(得分:0)

谢谢大家。我们使用数据库进行客户端存储UUID似乎更可靠,对登录客户非常有用;但是,CFID&amp; CFTOKEN可能会帮助客户选择“结账而不创建账户”选项。在这两种情况下,您认为哪一种是最佳解决方案?请参阅以下两种情况。

“对于已登录的用户,购物车商品将存储在”CartTemp“表中。对于选择”结帐而不创建帐户“的客户,购物车商品将存储在结构中client.Cart“。

答案 3 :(得分:0)

Serjii,

只是看到了您提供的页面中的代码,看起来像#CLIENT.urltoken#将在这两种方案中都有所帮助。谢谢。我试试看,让你知道。