2014-07-02 42 views
1

我想在AJAX文章后面读取设置在后端的cookie,我尝试了所有我能想到/遇到的补救措施,但我不知道我做错了什么。从AJAX请求获取Cookie

这是从AJAX请求中获取Headers的代码片段。我更感兴趣的是看到 “Set-Cookie”标题,但没有。这段代码有什么问题?

<?php 
if ($_POST){ 
    header('Content-Type: application/json'); 

    setcookie('test_'.rand(),'cors'); 

    echo json_encode(array(
     'name' => 'Cors', 
     'server' => 'Local' 
    )); 
} else { ?> 

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    function post(){ 
     $.post(null,{ 
      xhrFields: { 
       withCredentials: true 
      } 
     }).done(function(a,b,options){ 
      $('code').html(options.getAllResponseHeaders()); 
     }); 
    } 

    $(function(){ 
     $('.post').click(post);  
    }); 
</script> 
<a href="javascript:;" class="post">Send</a> 
<hr></hr> 
<strong>Response Headers</strong><br/> 
<pre><code>---</code></pre> 

<?php } ?> 
+0

答案在这里:http://stackoverflow.com/questions/2870371/why-is-jquerys-ajax-method-not-sending-my-session-cookie – MrE

回答

0

XmlHttpRequest specgetAllResponseHeaders状态:

返回的所有HTTP头,但不包括用于设置Cookie或 不区分大小写的匹配设置COOKIE2

头标基本上意味着你不能这样做,至少这样。你可以试试reading the cookies from the document

+0

谢谢Kojo,实际上帮助。我用document.cookie代替了options.getAllResponseHeaders(),它能够读取cookie。 –