使用多个查询参数在 Javascript 中重定向

Redirect in Javascript with multiple query params

我有这个代码:

if($('#category').val() == 4){
   console.log("http://"+window.location.hostname+'/dailyGift?id_event='+$( "#sub-category" ).val()+'?week_id='+$('#week_id').val()+'?year_id='+$('#year_id').val());
   window.location = "http://"+window.location.hostname+'/dailyGift?id_event='+$( "#sub-category" ).val()+'?week_id='+$('#week_id').val()+'?year_id='+$('#year_id').val();
}

在我的控制台中

http://myWebsite.dev/dailyGift?id_event=41?week_id=44?year_id=2016.

当我直接访问时没有问题,但是 jQuery 没有进行此重定向,我不明白问题出在哪里。

除第一个

外,您需要将所有?更改为&
if($('#category').val() == 4){
   console.log("http://"+window.location.hostname+'/dailyGift?id_event='+$( "#sub-category" ).val()+'&week_id='+$('#week_id').val()+'&year_id='+$('#year_id').val());
}

请替换所有“?”使用“&”,正确的 URL 将是:-

http://myWebsite.dev/dailyGift?id_event=41&week_id=44&year_id=2016

此外,如果您出于安全目的对 ID 进行加密,那就更好了。

您说您想要重定向到 link,但您只是更改 location.href 值,这相当于单击 link。

Location.replace() 将加载新资源代替当前资源。当前页面不会添加到会话历史记录中,因此无法使用后退按钮 return 返回该页面。

我还清除了 url 字符串中 " 和 ' 的使用,使其更清晰。

if ($('#category').val() == 4){
  var url = "http://"+window.location.hostname+"/dailyGift?id_event="+$('#sub-category').val()+"&week_id="+$('#week_id').val()+"&year_id="+$('#year_id').val();
  console.log(url);
  window.location.replace(url);
}