AJAX Cookie没有保存到浏览器

时间:2015-04-28 16:11:08

标签: javascript jquery ajax symfony cookies

好。首先是相关的代码:

jQuery的:

saveFilterCookie: function( obj ) {
    $.ajax( {
        url     : saveFilterCookie,
        type    : 'POST',
        data    : { filter: obj },
        dataType: 'json',
        success : function( data, status, jqxhr)
        {
            var headers = jqxhr.getAllResponseHeaders()
            console.log(headers);
        },
        error    : function( jqXHR , textStatus , errorThrown )
        {
            console.log(textStatus);
        }
    });
},

PHP:

public function saveFilterAction( ) {

    $filter = $this->request->get( 'filter', null );

    // Expiration days
    $expirationDays = $this->serviceContainer->getParameter( 'filter_cookie_expiration_days' );

    // Cookie expiration time
    $expirationTime = time() + ( 3600 * 24 * $expirationDays );

    // Set filter cookie
    $this->response->headers->setCookie( new Cookie( '_filter', $filter, $expirationTime ) );

    return $this->renderJSON( json_encode( array( 'success' => true ) ) );
}

我从AJAX调用得到了适当的响应。状态200,一切看起来都不错。该Cookie甚至位于响应标头中(根据Google Chrome的检查员)。但是当我导航到下一页时,cookie就神奇地消失了。

检查员的回应:

Inspector Headers

有什么想法?我猜我错过了一些明显的东西。

编辑:解决方案

对于那些感兴趣的人,通过简单地创建cookie客户端来解决这个问题,因为不需要去服务器和返回。有关详细信息,请参阅W3 Schools article on JS Cookies

0 个答案:

没有答案