Кнопка возврата $ .getJSON, показывающая возвращаемые данные JSON, а не страницу - PullRequest
6 голосов
/ 10 января 2010

У меня небольшая проблема с моим сайтом. У меня есть страница, на которой размещена карта Google. Однако карта не отображается, пока пользователь не нажмет кнопку. Затем он вызывает $ .getJSON, чтобы получить адреса, которые мне нужно показать на карте ...

$.getJSON(theurl, function(json) {
  ...
}

Все отлично работает. Однако если пользователь затем переходит на другую страницу и затем нажимает кнопку «Назад», он получает данные из отображаемого вызова $ .getJSON, а не саму страницу.

Как будто звонок для получения адресов стал частью истории просмотра. Если пользователь нажимает обновить, когда данные появляются на полной странице, то отображается.

Может кто-нибудь сказать мне, как это предотвратить.

Я использую googlemap на сайте ASP.Net MVC.

Спасибо

Ответы [ 3 ]

10 голосов
/ 19 мая 2011

Я решил это, включив приведенный ниже код непосредственно перед функцией $ .ajax

$. AjaxSetup ({cache: false});

Это работает! Попробуй

4 голосов
/ 14 сентября 2012

Это сработало для меня и хорошо работает с контроллерами Rails:

$.getJSON(url, {format: 'json'}, successHandler);

В качестве бонуса я получаю кеш.

Я почти уверен, что это работает по той же причине, что и cache: false - оба добавляют параметр в URL, чтобы Chrome не смущался источником. В этом случае я получаю кеширование результатов, что приятно.

3 голосов
/ 25 октября 2012

Это на самом деле ошибка в Chrome . Я исправил это, добавив что-то в URL-адрес вызова AJAX, чтобы он отличался от URL-адреса страницы (например, & ajax = true).

Так что в вашем случае это будет выглядеть так:

$.getJSON(theurl + '&ajax=true', function(json) {
  ...
}

(И, конечно, вам нужно проверить «?», А что нет в строке запроса, но это иллюстрирует смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...