Como posso compartilhar cookies entre ColdFusion e JavaScript?

Compartilhar cookies entre ColdFusion e JavaScript é uma forma fácil de passar dados entre as duas tecnologias. Um cookie é um cookie independentemente de se foi definido pelo ColdFusion, Java, .net, ou JavaScript. Desde que voce saiba o nome do cookie (e em alguma situações sua caixa - maiúsculo/minúsculo) voce pode acessar e manipular o cookie. Dito isto, o maior truque em compartilhar cookies entre ColdFusion e JavaScript é lembrar-se que ColdFusion ignora a caixa (case insensitive), mas JavaScript não (case sensitive). Usar um cookie JavaScript em ColdFusion não importa a caixa, mas usar um cookie ColdFusion em JavaScript voce deve se referenciar ao nomde do cookie todo em letras maiúsculas (all caps).

O código a seguir está dividido em duas páginas. A primeira página define dois cookies. O primeiro cookie é definido via JavaScript, e o segundo via ColdFusion. A segunda página então usa ColdFusion e JavaScript para exibir o conteúdo dos cookies que foram definidos pela outra linguagem:

<!--- Page1.cfm --->
<script language=javaScript>
     <!--
     //This function will set a JavaScript cookie
     function setCookie(name, value) {
          //build an expiration time 1 hour into the future    
          var expDate = new Date();
          expDate.setTime(ExpDate.getTime() + 60*60*1000);
          //set the cookie
          document.cookie = name + "=" + escape(value) +
               ";" + expDate.toGMTString();
     }
     setCookie('jSCookie', 'JavaScript!');
     // -->
</script>
<cfcookie name="cFCookie" value="ColdFusion!" expires="never">

<!--- Page2.cfm --->
<script language=javaScript>
     <!--
     // This function will return the value of a JavaScript cookie
     function getCookie(name) {
          //init output var output = null;
          //apend ; to end so we can calculate end of cookie text
          var myCookie = " " + document.cookie + ";";
          //append = to cookie name so any additional text is the cookie value
          var search = " " + name + "=";
          // init search start location
          var begin = myCookie.indexOf(search);
          //init search end location
          var end;
          //loop over cookie text and pull out the value we want
          if (begin != -1) {
               begin += search.length;
               end = myCookie.indexOf(";", begin);
               output = unescape(myCookie.substring(begin, end));
          }
          return output;
     }
     alert(getCookie('CFCOOKIE'));
     // -->
</script>
<cfoutput>#cookie.jSCookie#</cfoutput>

by Jeremy Petersen

1 response to “Como posso compartilhar cookies entre ColdFusion e JavaScript?”

  1. Estou tentando abrir um html atravez de função mais está apresentando erro como posso evitar esse erro.
    exe:
    onde id = 'c;\temp\exemplo.html'
    dTree.prototype.Open = function(id) {
       if(id.pathname != null){
          return window.open(id.pathname);
       }
       //var MyFrame=window.open(id);
       return
    };

    erro apresentado ; Access is Denied

    Jacivam

    Jacivam ~ Jan 20, 2010 at 10:10 AM