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

时间:2016-11-03 12:30:50

标签: javascript jquery javascript-events

我有这段代码:

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没有进行此重定向,我不明白问题在哪里

3 个答案:

答案 0 :(得分:4)

您需要更改?所有&,但第一个

除外
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());
}

答案 1 :(得分:1)

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

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

如果出于安全目的加密id,也会很好。

答案 2 :(得分:0)

您说要重定向到链接,但您只是更改location.href值,这相当于点击链接。

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

我还清理了在url字符串中使用“and”以使其更清晰。

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);
}