Jquery cookie插件无法在服务器上运行

时间:2013-07-03 09:36:55

标签: c# asp.net cookies session-cookies jquery-cookie

我是jquery cookie插件的新手。 我正在编写代码来在单页服务器端设置cookie,并在jquery的另一页上读取它。 它在所有浏览器上本地工作。 但在服务器上它正常工作ie并且不能正常工作在chrome和firefox上。 这是我在服务器端设置cookie的代码:

context.Response.AppendCookie(new HttpCookie("fileDownloadToken", _token));

并使用jquery在另一页上下载文件后读取和删除cookie:

  <script type="text/javascript">

    var fileDownloadCheckTimer;
    function blockUIForDownload() {
        var token = '1357.11.22'; 
        $('#download_token_value').val(token);
       $.blockUI({
            message:$('#domMessage'),
            css: {
                padding: 10,
                margin: 0,
                width: '30%',
                top: '50%',
                left: '35%',

                textAlign: 'center',
                color: '#000',
                border: '3px solid #aaa',
                backgroundColor: '#fff',
                cursor: 'wait',
            }});
            fileDownloadCheckTimer = window.setInterval(function () {
                var cookieValue = $.cookie('fileDownloadToken');
                //alert(cookieValue);
                if (cookieValue == token)
                    finishDownload();
            }, 1000);
    }

    function finishDownload() {
        window.clearInterval(fileDownloadCheckTimer);
        $.unblockUI();
        $.cookie('fileDownloadToken', null, { path: '/' });

    }

</script>  

1 个答案:

答案 0 :(得分:3)

请设置Cookie到期日期时间,因为服务器可能位于浏览器系统时间后面的另一个时区。

HttpCookie cookie = new HttpCookie("fileDownloadToken", _token);
cookie.Expires = DateTime.Now.AddMinutes(10); //change this to appropriate value
cookie.Path = "/"; //Also set path
context.Response.AppendCookie(cookie);