0

我是 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>  
4

1 回答 1

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);
于 2013-07-03T10:34:39.190 回答