如何改变url成功后,在ajax没有页面重新加载

How to change url after success in ajax without page reload

本文关键字:新加载 ajax 加载 改变 何改变 url 成功      更新时间:2023-09-26

这是ajax

$(".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(),参数。

你可以对你的成功动作这样做:

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

查看这篇文章来修改URL而不重新加载页面的基本操作方法。

额外的注意:

  1. 第一个参数是我们需要的数据,如果网络状态例如,当有人按下后面或转发按钮在他们的浏览器。注意,在Firefox中,这些数据是限制为640k字符。
  2. title是第二个参数,它可以是字符串,但在当时
  3. 最后一个参数是我们希望出现在地址中的URL酒吧。

现在在大多数"现代"浏览器中都可以使用

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

      history.pushState()
     history.replaceState()
https://developer.mozilla.org/en-US/docs/Web/API/History_API

try this

 $(".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);
            window.history.pushState("Details", "Title", "<?php echo base_url(); ?>/yourNewPage");
        }
    });
});