Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

How can I get Javascript to read CGI-generated cookies

by michellem (Friar)
on Oct 30, 2000 at 22:23 UTC ( #39159=categorized question: print w/replies, xml ) Need Help??
Contributed by michellem on Oct 30, 2000 at 22:23 UTC
Q&A  > CGI programming


I've been using the standard method for setting cookies using perl/cgi:
$logincookie = $co->cookie ( -name=>'ST', -value=>'test', -expires=>'+30d' -path=>'/', -domain=>'', -secure=>0 ); print $co->header(-cookie=>$logincookie);
And I'm trying to read the cookie using javascript (via document.cookie), but although it is clear that the cookie is set (looking at the magic cookie file), a javascript function can't read it (document.cookie is empty). What am I doing wrong?

Answer: How can I get Javascript to read CGI-generated cookies
contributed by r34d0nl1

The standard mantra should work (as explained in perldoc CGI) when dealing with cookies.
Quoted from perldoc is an explanation to -path option:

"3. a path If you provide a cookie path attribute, the browser will check
it against your script's URL before returning the cookie.
For example, if you specify the path "/cgi-bin", then the cookie will be returned to each of
the scripts "/cgi-bin/", "/cgi-bin/", and "/cgi-bin/customer_service/",
but not to the script "/cgi-private/". By default, path is set to "/", which causes
the cookie to be sent to any CGI script on your site."

I think that you first should try to read the values of your cookie to check if it can be read by another perl page. If it is Ok, then you should not worry about the cookie generation, but worry about your JavaScript code...

Answer: How can I get Javascript to read CGI-generated cookies
contributed by michellem

I think the problem is with the 'path' attribute. When I look at the cookie, the path appears as /cgi-bin/ which of course makes sense, but I'm not sure how to make sure that the path get's set as '/', even though I've specified it in the script. Should I set an absolute path?

Please (register and) log in if you wish to add an answer

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others taking refuge in the Monastery: (5)
    As of 2020-09-24 20:45 GMT
    Find Nodes?
      Voting Booth?
      If at first I donít succeed, I Ö

      Results (135 votes). Check out past polls.