Проблема :
После выхода со страницы, которая использует pushState и popState для обработки навигации назад и вперед при получении HTML и JSON с того же базового URL, возвращаясь к страница, использующая кнопку «Назад», показывает кэшированный JSON вместо HTML.
Описание :
- Использование Ajax вызовов для поиска по странице при поиске В результате наше приложение использует тот же URL-адрес, что и URL-адрес страницы, но с форматом = json.
- На каждой странице вызывается
window.history.pushState(state,null,url)
. - popState используется внутренне, когда задний и На этой странице используются кнопки вперед.
- Результаты содержат ссылки, которые загружают другие страницы. (Это приложение не SPA)
- После нажатия на одну из этих ссылок и нажатия кнопки «Назад», Chrome показывает JSON, сохраненный в состоянии, а не предыдущую страницу с консолью ошибка:
Ресурс интерпретируется как Документ, но передается с приложением MIME-типа / json
Firefox и Safari корректно перезагружает страницу, и так как я обновляя URL в вызове pushState, они корректно перезагружают страницу в состояние I sh (т. е. URL имеет правильную идентификацию страницы и, следовательно, перезагружает правильную страницу результатов поиска).