Javascript 设置cookie,然后重定向

Javascript 设置cookie,然后重定向,javascript,redirect,cookies,Javascript,Redirect,Cookies,当我在地址栏上键入时,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 = $

当我在地址栏上键入时,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';
});
});

<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>
是这样吗?它不起作用。代码如下:

<script type="text/javascript" src="/static/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
var cookieName = 'city';
var cookieValue = 'city';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + `";domain=.example.com;path=/;expires=" + myDate;
</script>

<script type="text/javascript">
//<![CDATA[
$(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';
});
});


function setCookie(name,value,days) {
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 getCookie(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 dropCookie(name) {
createCookie(name,"",-1);
}
//]]>
</script>

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

 $.cookie('city', 'whatevercityhere', { expires: 7, path: '/', domain: '.example.com' });
编辑:根据下面的注释,还要检查cookie是否未设置为仅http。

尝试以下示例:


这个getCookie函数是什么?您是否尝试过向console.log发出警报或将city变量写入?我的目标是设置cookie,然后重定向。不确定console.log。你能添加简单的代码吗?谢谢。我只是添加了一些代码,所以请检查顶部。谢谢。要添加到Joe Love的答案中,您可能还需要检查cookie中的HTTP Only标志。如果设置为true,则Javascript将无法读取。请编写代码,将cookie域设置为.example.com,以便在所有子域之间共享?谢谢。重定向页面不可用。var cookieName=‘城市’;var cookieValue=‘城市’;var myDate=新日期;myDate.setMonthmyDate.getMonth+12;document.cookie=城市+=+城市+;expires=+myDate+;域名=.listhall.com;路径=/;使用此mannar document.cookie=cookieName+=+cookieValue+;expires=+myDate+;domain=.example.com;路径=/;不像document.cookie=city+=+city+;expires=+myDate+;域名=.listhall.com;路径=/;请在console.log中检查href,如果您得到值,请更改重定向方法。
<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate 
                  + ";domain=.example.com;path=/";
</script>