如何在没有页面重新加载的情况下在ajax中成功更改URL

Dim*_*rea 20 javascript php ajax jquery

这是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);
    }
  })
})
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我想要更改网址,因为我有很多参数,当然还有data: "urut="+$(".urut").val(),参数.

She*_*nti 33

您现在可以在大多数"现代"浏览器中执行此操作!

你可以为你的成功行动做到这一点:

window.history.pushState("object or string", "Title", "/new-url");
Run Code Online (Sandbox Code Playgroud)

请参阅此文章以修改URL而无需重新加载页面以获取基本操作方法.

附加说明:

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

  • 没关系,没什么大不了的......大脑思想都很相像. (2认同)

Art*_*nix 6

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

      history.pushState()
     history.replaceState()
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/zh-CN/docs/Web/API/History_API


kin*_*neo 5

尝试这个

 $(".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");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)