设置cookie然后重定向

use*_*048 5 javascript cookies redirect

当我在地址栏上键入时,cookie 未保留,并且域 example.com 无法重定向到 a.example.com。任何帮助将非常感激。

$(function() {
  var city = getCookie('city');
  if (city != null && city != '') {
    window.location.href = 'http://' + city + '.example.com';
  }
  $('#citygo').change(function() {
    var city = $(this).val();
    window.location.href = 'http://' + city + '.example.com';
  });
});
Run Code Online (Sandbox Code Playgroud)
$(function() {
  var city = getCookie('city');
  if (city != null && city != '') {
    window.location.href = 'http://' + city + '.example.com';
  }
  $('#citygo').change(function() {
    var city = $(this).val();
    window.location.href = 'http://' + city + '.example.com';
  });
});
Run Code Online (Sandbox Code Playgroud)

是这样吗?它不起作用。这是代码:

<select id="citygo">
  <option value="0">Select City</option>
  <option value="amsterdam">Amsterdam</option>
  <option value="newyork">New York</option>
  <option value="london">London</option>
  <option value="cardiff">Cardiff</option>
</select>
Run Code Online (Sandbox Code Playgroud)

Joe*_*ove 0

默认情况下,cookie 设置为仅在其来源相同的域名上发送。确保将 cookie 域设置为 .example.com 以在所有子域之间共享(假设您确实尝试在子域之间共享)。/

 $.cookie('city', 'whatevercityhere', { expires: 7, path: '/', domain: '.example.com' });
Run Code Online (Sandbox Code Playgroud)

编辑:根据下面的评论,还要检查 cookie 是否未设置为仅 http。

  • 要添加到 Joe Love 的答案中,您可能还需要检查 cookie 中的 HTTP-Only 标志。如果设置为 true 那么 Javascript 将无法读取 (2认同)