У меня есть приложение Rails, использующее магистраль. Когда я случайным образом нажимаю кнопку "Назад" или "переднюю", я вижу json.
Вы можете предоставить дополнительную информацию? Многие люди в настоящее время используют Backbone в производственной среде с Rails и не наблюдают такого же поведения.
В частности, предоставьте тестовый пример, чтобы мы могли точно воспроизвести проблему.
Я испытываю то же самое - всякий раз, когда я перехожу к внешнему URL-адресу (не обрабатывается магистральным приложением) или закрываю вкладку, а затем возвращаюсь или повторно открываю вкладку - я вижу JSON. Я не уверен, как я могу предоставить тестовый пример, но могу поделиться некоторыми подробностями, которые могут дать вам представление о том, что происходит.
приложение использует функцию _.delay для синхронизации коллекции модели с сервером (collection.fetch ()). Сервер представляет собой приложение RoR, которое обслуживает приложение и JSON для синхронизации по одному и тому же URL-адресу и использует заголовки, чтобы решить, нужно ли обслуживать все приложение или только массив данных JSON для моделей. Может ли это быть проблема?
Другая моя идея заключается в том, что браузер кэширует последний запрос, сделанный им на сервер, и когда вы нажимаете назад, он просто отображает его. Если мне удастся быстро покинуть приложение (до первого запроса на синхронизацию), то при возврате отобразится приложение (а не JSON).
У вас есть идеи, как это преодолеть?
Я решил проблему, сделав это
$.ajaxSetup
beforeSend: (xhr) ->
xhr.setRequestHeader "Accept", "application/json"
cache: false
Спасибо!
для меня
$.ajaxSetup
cache: false
было достаточно
+1
+1
У меня была такая же проблема в моем приложении RoR, и ваше решение сработало для меня.
Спасибо @omenking @antonlitvinenko
Более того, всегда явно добавляйте расширение .json
к своим URL-адресам и позволяйте браузеру кэшировать как json, так и страницу html (если вы не против), то есть /users/1
+ /users/1.json
вместо перезаписи записи в кеше для того же URL. В противном случае вы упустите преимущества кеширования браузера (что приятно, правда?;)) Только мой 2c.
@Sija, вы правы, но я перешел на явный .json, и когда я делаю тест, была получена та же проблема, что json перезаписывает страницу. Вы хоть представляете, что я делаю не так? хе-хе
спасибо
+1
Самый полезный комментарий
Спасибо!
для меня
было достаточно