如何在ajax中成功后更改网址而无需重新加载页面

2022-08-30 16:31:38

这是阿贾克斯

$(".urut").change(function() {
  $.ajax({
    url: "<?php echo base_url(); ?>categories/brand/<?= $link_brand; ?>?l=<?= $l; ?>&h=<?= $h; ?>&city=<?= $city; ?>&city_name=<?= $city_name; ?>&ket=view",
    type: "POST",
    data: "urut=" + $(".urut").val(),
    success: function(data) {
      $("#result").html(data);
    }
  })
})

这有效,但我希望url更改,因为我在那里有很多参数,当然还有参数。data: "urut="+$(".urut").val(),


答案 1

你可以这样做的成功行动:

window.history.pushState("object or string", "Title", "/new-url");

请参阅此帖子修改URL而不重新加载页面,以获取基本操作方法。

附加说明:

  1. 第一个参数是网页状态发生变化时我们需要的数据,例如,每当有人在浏览器中按下后退或前进按钮时。请注意,在 Firefox 中,此数据限制为 640k 个字符。
  2. title是第二个参数,可以是字符串,但在撰写本文时,每个浏览器都会忽略它。
  3. 最后一个参数是我们希望在地址栏中显示的 URL。

它现在在大多数“现代”浏览器中都可用。


答案 2

使用浏览器历史记录更改 JS 中的 url 栏。

      history.pushState()
     history.replaceState()

https://developer.mozilla.org/en-US/docs/Web/API/History_API