在其子域上为外部网站创建和删除 cookie

Create and Delete cookies for external websites on their subdomain

在Jquery中设置Cookie功能

function setCookie(cookieName, cookieValue, cookieExpireDays) {
        var d = new Date();
        d.setTime(d.getTime() + (cookieExpireDays * 24 * 60 * 60 * 1000));
        var expires = "expires=" + d.toUTCString();
        document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";" + "path=/";
    }

删除Jquery

中的函数
function deleteCookie(name) {
    var domain = location.hostname,
        path = '/'; // root path

    document.cookie = [
        name, '=',
        '; expires=' + new Date(0).toUTCString(),
        '; path=' + path,
        '; domain=' + domain
    ].join('');
}

这适用于本地链接,但当我尝试在外部网站上使用它时。我可以获得 document.cookie,但 deleteCookie 函数不会删除 cookie。有什么想法吗?

*请记住,我只是 运行 来自 Google Chrome

控制台的这些脚本

我可能误解了你的问题,但这是我处理获取、设置和删除我设置的 cookie 的方式。

fiddle: https://jsfiddle.net/hmvyu3L6/

<button class='set'>set</button>
<button class='get'>get</button>
<button class='delete'>delete</button>

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = 'expires=' + d.toUTCString();
    document.cookie = cname + '=' + cvalue + '; ' + expires;
  }

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

  function deleteCookie( name ) {
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
  }

  var value = 'hey there';

  $('.set').on('click', function() {
    setCookie('testCookie', value, 360);
  });

  $('.get').on('click', function() {
    console.log(getCookie('testCookie'));
  });

  $('.delete').on('click', function() {
    deleteCookie('testCookie');
  });

如果 cookie 是 HttpOnly,您将无法使用 javascript 或 jquery 删除它们。

确保您的域和路径完全匹配。如果它们不同(例如 .subdomain.domain.com 而不是 .domain.com,或 /path 而不是 /),则脚本不会影响 cookie。

好的,我正在回答我自己的问题,因为我改变了一些东西并且现在可以使用了。

    var domain = location.hostname

    function setCookie(cookiename, cookievalue, expiredays, domain) {
            var date = new Date();
            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
            var expires = "; expiredays=" + date.toGMTString();   
            document.cookie = cookiename+ "=" + cookievalue+ expires + "; domain=" + domain + "; path=/";
    }

function deleteCookie(cookiename, domain) {
    setCookie(cookiename, "", -1, domain);
}

deleteCookie("Cookie_Name",domain)