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

时间:2016-06-29 02:46:01

标签: javascript php jquery ajax

这是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);
    }
  })
})
&#13;
&#13;
&#13;

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

3 个答案:

答案 0 :(得分:29)

你现在可以在大多数&#34;现代&#34;浏览器<!/强>

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

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

有关基本操作方法,请参阅此帖子Modify the URL without reloading the page

  

附加说明:

     
      
  1. 第一个参数是我们在网络状态下需要的数据   页面更改,例如每当有人按下后面或   转发浏览器中的按钮。请注意,在Firefox中,此数据是   限制为640k字符。
  2.   
  3. title是第二个参数,可以是一个字符串,但当时   写作,每个浏览器都会忽略它。
  4.   
  5. 此最终参数是我们要在地址中显示的网址   栏。
  6.   

答案 1 :(得分:5)

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

      history.pushState()
     history.replaceState()

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

答案 2 :(得分:3)

试试这个

$(".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");
    }
});

});