hello perl Gurus, I have put the same question on stack exchange, but getting no response... I am NOT able to send the cookie in response to AJAX call to my webpage. I am following it exactly as the manual says, putting the cookie in the header of "$q", but it is not working :(the javascript code does not find any cookie in document.cookie
JSON response is being received and parsed just fine, below is simplified version of the script: #!/usr/bin/perl use strict; use warnings; use JSON::XS; use Template; use CGI::Simple; my $q = new CGI::Simple; my $ajaxResp = {} ; #hashRef my $ajaxResp_result; #success, fail, error my $ajaxResp_mesg; #text mesg if needed my $ajaxResp_obj; #file,json array etc. my $ajaxResp_type = 'text'; #text/html/json/file/newPage etc... my $json = JSON::XS->new(); my ($checkAuthAjaxResp_result,$uid,$sid,$cookie)=checkAuth($q); #external function working fine. #good authentication.... at this point i have a well formed cookie hash. $ajaxResp_result = 'success'; $ajaxResp_mesg = 'successful login.'; $ajaxResp_type = 'text'; $ajaxResp_obj = ''; # returns a JSAON ARRAY of: status = error/success, data=mesg, responseType, file=filename.... $ajaxResp->{'result'} = $ajaxResp_result; $ajaxResp->{'responseType'} = $ajaxResp_type; $ajaxResp->{'mesg'} = $ajaxResp_mesg; $ajaxResp->{'obj'} = $ajaxResp_obj; my $response = $json->encode ($ajaxResp); # encode_json($ajaxResp); # set STDOUT to auto-flush and print header $| = 1; if ((defined $checkAuthAjaxResp_result) && ($checkAuthAjaxResp_result eq 'pass')){ print $q->header(-type=>'application/json', -cookie=>$cookie, ); }else { print $q->header(-type=>'application/json', ); }print $response; 1; ############################### I also tried but this does not work. I am not seeing the cookie in the browser cookie table or on firebug log. # set STDOUT to auto-flush and print header $| = 1; if ((defined $checkAuthAjaxResp_result) && ($checkAuthAjaxResp_result eq 'pass')){print $q->header(-cookie=>$cookie)} print "Content-type: application/json\n\n"; print $response; 1; ################## earlier it was ending like this: and this works fine: # set STDOUT to auto-flush and print header $| = 1; print "Content-type: application/json\n\n"; print $response; 1; another script which creates cookie as:my $cookie = $q->cookie( -name => 'mySID', -value => $sid, -expires => '+2m', -path => '/cgi-bin/', -domain => 'abc.com', -secure => 1 ); I am using TLS1.2 (SSL) for access. pl also refer to: perl how to send cookie and json output via ajax response | | | | | | | | | | | perl how to send cookie and json output via ajax response after a successful login/auth. my backend perl script has to send the generated cookie and a json response hash ... | | | |