2014-07-02 428 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。 –