Javascript Cookie和firefox的怪异行为

Javascript Cookie和firefox的怪异行为,javascript,django,cookies,Javascript,Django,Cookies,编辑:这只发生在firefox中,在chrome中效果很好 编辑2:由于显然没有解决方案(当存在其他cookie时sessionid会中断),我决定改用localstorage(这也是一种更好的方法) 我的网站(由django支持的网站)上有一个音频播放器,我想在cookie中存储当前时间、源和状态(是否播放)。因此,当您在播放音乐时刷新页面时,它将在您停止的位置继续。我设置了一个计时器,每秒更新cookie跟踪时间。然而,它是有效的: 当你第二次尝试登录网站时,当音频播放时,它不会让你登录。它

编辑:这只发生在firefox中,在chrome中效果很好

编辑2:由于显然没有解决方案(当存在其他cookie时sessionid会中断),我决定改用localstorage(这也是一种更好的方法) 我的网站(由django支持的网站)上有一个音频播放器,我想在cookie中存储当前时间、源和状态(是否播放)。因此,当您在播放音乐时刷新页面时,它将在您停止的位置继续。我设置了一个计时器,每秒更新cookie
跟踪时间。然而,它是有效的:

当你第二次尝试登录网站时,当音频播放时,它不会让你登录。它在我的控制台中说登录发生了,但firefox似乎没有存储会话。当我禁用编写cookies的脚本时,它会再次工作

以下是证据:

这里到底发生了什么事?我没有收到任何错误,只是不起作用

代码: 这里的代码段创建、读取和删除cookie

/** Cookies **/

function createCookie(name, value, days) {
    'use strict';
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    } else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name, "", -1);
}

创建包含AudioTrack对象(源、名称等)的cookie


什么是真/假栏?是HTTP还是安全?@gabykag.Petrioli我已经添加了代码片段。@AdrianLynch共谋者在我所附的屏幕截图中。@AdrianLynch你看过了吗?正确/错误栏是什么?它是HTTP还是安全的?@gabykag.Petrioli我已经添加了代码片段。@AdrianLynch共谋者在我所附的屏幕截图中。@AdrianLynch你看过和吗
// Cookie? //

function audioCookie() {
    'use strict';
    var track, track_time, track_state;
    track = readCookie('track');
    track_time = readCookie('track_time');
    track_state = readCookie('track_state');
    if (track !== null) {
        track = JSON.parse(track);
        audioCurrent = new AudioTrack(track.src, track.artist, track.title, track.genre, track.type);
        audioCurrent.setSrc();
        if (track_state === '1') {
            audioCurrent.play();
        }
        setTimeout(function () {
            audioCurrent.time(track_time);
            audioSetProperties();
            audioViewUpdate();
            audioElementUpdatePlayButton();
            audioAnalyserInitialize();
        }, 250);
    }
}
var audioTimeUpdate = function () {
    'use strict';
    if (audioSource.paused === false) {
        audioSetProperties();
        createCookie('track_time', audioSource.currentTime, 360);
        setTimeout(function () {
            audioTimeUpdate();
        }, 500);
    }
};
// Play the track that is being viewed

var audioPlayFromView = function () {
    'use strict';
    audioCurrent = audioFromView;
    var audioCurrentString = JSON.stringify(audioCurrent);
    createCookie('track', audioCurrentString, 360);
    audioCurrent.setSrc();
    audioCurrent.play();
    if (analyserInitialized === true) {
        source.disconnect();
        source = context.createMediaElementSource(audioSource);
    }
    audioViewUpdate();
};