in reply to Re^2: WWW Mechanize and JavaScript Cookie
in thread WWW Mechanize and JavaScript Cookie

How can I enable?

Ha ha, this is faq, see LWP::Debug

FWIW, this works for me

#!/usr/bin/perl -- use strict; use warnings; use WWW::Scripter; my $w = WWW::Scripter->new; $w->use_plugin('JavaScript'); #~ http://w3schools.com/jsref/prop_doc_cookie.asp# HTML DOM Document c +ookie Property #~ http://w3schools.com/jsref/tryit.asp?filename=tryjsref_doc_cookie #~ http://w3schools.com/jsref/tryit_view.asp?filename=tryjsref_doc_coo +kie $w->get('http://w3schools.com/jsref/tryit_view.asp?filename=tryjsref_d +oc_cookie'); print $w->cookie_jar->as_string, "\n\n"; print $w->document->body->as_text; __END__ Set-Cookie3: ASPSESSIONIDACRSCCCQ=FAKEASPSESSIONIDACRSCCCQ; path="/"; +domain=w3schools.com; path_spec; discard; version=0 Cookies associated with this document: ASPSESSIONIDACRSCCCQ=FAKEASPSESSIONIDACRSCCCQ

Replies are listed 'Best First'.
Re^4: WWW Mechanize and JavaScript Cookie
by saintex (Scribe) on Mar 15, 2011 at 16:37 UTC
    But the cookie you talk about, it is not write with JavaScript, but with ASP:
    ASPSESSION

    I have not any difficult to read cookies, but I have difficult to write cookie in JavaScript.
    The cookies are not been writed.
      :) Well, maybe you can show a program which does demonstrate the bug
        yes, for sure :-) Try to visit with your Perl script (or with the mine, that is similar) a page like this:
        <?php setcookie("TestCookie", 'mytest', time()+3600, "/", "localhost", 0); ?> <html> <head> <script> function setCookie(cookieName,cookieValue,nDays) { var today = new Date(); var expire = new Date(); if (nDays==null || nDays==0) nDays=1; expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toUTCString(); } function ReadCookie(cookieName) { var theCookie=""+document.cookie; var ind=theCookie.indexOf(cookieName+"="); if (ind==-1 || cookieName=="") return ""; var ind1=theCookie.indexOf(";",ind); if (ind1==-1) ind1=theCookie.length; return unescape(theCookie.substring(ind+cookieName.length+1,ind1)); } setCookie('cookJS','prova13',5); alert('- - -'); alert(ReadCookie('TestCookie') ); alert(ReadCookie('cookJS') ); alert('- - -'); </script> </head> <body> </body> </html>
        As you can see, the perl output shows the content of the cookie wrote with PHP ('TestCookie'), not the cookie I wrote via JavaScript ('cookJS').

        So you can't write a cookie via JavaScript. You can only read them.