从AJAX请求中获取cookie

时间:2014-07-02 10:27:22

标签: jquery ajax cookies cors

我试图在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 } ?>

1 个答案:

答案 0 :(得分:0)

getAllResponseHeaders州的XmlHttpRequest spec

  

返回所有HTTP标头,不包括标头   Set-Cookie或Set-Cookie2的大小写不敏感匹配

这基本上意味着你不能这样做,至少就是这样。

也许你可以试试reading the cookies from the document