programing

페이지 다시 로드 없이 Ajax 성공 후 URL 변경 방법

iphone6s 2023. 7. 31. 21:11
반응형

페이지 다시 로드 없이 Ajax 성공 후 URL 변경 방법

이것은 아약스입니다.

$(".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. 제목은 문자열이 될 수 있는 두 번째 매개 변수이지만, 쓸 때 모든 브라우저는 단순히 무시합니다.
  3. 이 최종 매개 변수는 주소 표시줄에 표시할 URL입니다.

이제 대부분의 "현대식" 브라우저에서 사용할 수 있습니다.

브라우저 기록을 사용하여 JS의 URL 표시줄을 변경합니다.

      history.pushState()
     history.replaceState()

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

이것을 먹어보세요.

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

언급URL : https://stackoverflow.com/questions/38089507/how-to-change-url-after-success-in-ajax-without-page-reload

반응형