Задать вопрос
@svm2001

Почему возникает ошибка pushState?

const baseUrl = window.location.pathname;
        function handleButtonClick(event) {
            setTimeout(() => {
                const currentButton = event.target
                if (currentButton === allFiltersButton) {
                    history.pushState(null, '', baseUrl)
                } else {
                    const activeFilters = Array.from(filterButtons)
                        .filter(button => button.classList.contains('active'))
                        .map(button => button.getAttribute('data-address'))
                    const newTags = activeFilters.length > 0 ? '/' + activeFilters.join('-and-') : ''
                    
                    console.log(baseUrl)
                    console.log(newTags)
                    
                    try {
                        history.pushState(null, '', baseUrl + newTags)
                    } catch (e) {
                        console.error('Ошибка:', e);
                    }
                }
            }, 30)
        }


При клике по кнопкам, собираю данные с дата-атрибутов и помещаю их в pushState.
На локалке все ок и при работе получаю типо такого: "https://localhost:8080/index.html/filter_1-and-fil..." и тд

Переношу на сервак и получаю ошибку:


Failed to execute 'pushState' on 'History': A history state object with URL 'https://filter_1/' cannot be created in a document with origin 'https://my-domen.dev' and URL 'https://my-domen.dev/'.


У меня по этим фильтрам ajax идет и я вывожу данные в зависимости от того, какие фильтры передал на бек. Но аякс я отключил и хочу разобраться сперва с подстановкой в url.

Подскажите, в чем я не прав и как поступить?

Вывел в консоль baseUrl и newTags - на локалке получаю "/index.html" и "/filter_1", на сервере выводятся "/" и "/"
  • Вопрос задан
  • 177 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы