如何在反应中设置 cookie?

新手上路,请多包涵

最初,我使用以下 ajax 来设置 cookie。

 function setCookieAjax(){
  $.ajax({
    url: `${Web_Servlet}/setCookie`,
    contentType: 'application/x-www-form-urlencoded;charset=utf-8',
    headers: { 'Access-Control-Allow-Origin': '*',
               'username': getCookie("username"),
              'session': getCookie("session")
    },
    type: 'GET',
    success: function(response){
      setCookie("username", response.name, 30);
      setCookie("session", response.session, 30);}
  })
}

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

export const getUserName = (component) => {
    setCookieAjax()
 $.ajax({
    url: `${Web_Servlet}/displayHeaderUserName`,
    contentType: 'application/x-www-form-urlencoded;charset=utf-8',
    headers: { 'Access-Control-Allow-Origin': '*',
                'username': getCookie("username"),
                'session': getCookie("session")
            },
    type: 'GET',
    success: function(response){
        component.setState({
        usernameDisplay: response.message
        })
   }.bind(component)
 })
}

现在,我想使用 servlet 的添加 cookie 功能来设置 cookie。但我不知道如何达到我的目的。

 Cookie loginCookie = new Cookie("user",user);  //setting cookie to expiry in 30 mins
        loginCookie.setMaxAge(30*60);
        loginCookie.setDomain("localhost:4480");
        loginCookie.setPath("/");

response.addCookie(loginCookie);

为了延长cookie时限,react端应该写什么来接收cookie的会话时间?

原文由 OPfan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 479
2 个回答

似乎 react-cookie npm 包中先前存在的功能已移至 universal-cookie 。现在 通用cookie存储库 中的相关示例是:

 import Cookies from 'universal-cookie';
const cookies = new Cookies();
cookies.set('myCat', 'Pacman', { path: '/' });
console.log(cookies.get('myCat')); // Pacman

原文由 speckledcarp 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用香草 js,示例

document.cookie = `referral_key=hello;max-age=604800;domain=example.com`

阅读更多: https ://developer.mozilla.org/en-US/docs/Web/API/Document/cookie

原文由 Smakosh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进