У меня странная ситуация, когда jQuery $.getJSON
/ $.ajax call
прерывается простым событием JavaScript window.location = 'http://new.com/'
.
Событие Fire
window.location = 'http://example.com/something-that-takes-a-couple-seconds';
- Пока вышеуказанный URL-адрес подключается, но до того, как браузер на самом деле что-то перерисовывает, сделайте вызов
$.getJSON
.В моем случае я запускаю это, прокручивая страницу до конца (загружая больше результатов). - Вместо того, чтобы фактически перейти к
http://example.com/something-that-takes-a-couple-seconds
, вместо этого подключитесь к URL-адресу JSON http://example.com/ajax/getJSONList.php?params=...
и просмотритенабор результатов в формате JSON в виде простого текста.
Кто-нибудь сталкивался с этой проблемой раньше?
Полагаю, достаточно простое решение - просто заблокировать все дальнейшее выполнение JavaScript любыми средствами, необходимыми сразу после запускаwindow.location
изменить?
РЕДАКТИРОВАТЬ: Вы можете увидеть код в действии здесь: http://myscubadives.com/,, но будет не очень интересно пробираться.
Воспроизвести: Сначала, используйте кнопку входа в Facebook в правом верхнем углу.Войдите в Facebook и разрешите доступ к моему сайту.После подключения бита Facebook запускается следующая строка: location.replace ('/ user / facebook');- Я пробовал location.replace (), location.href, window.location.Та же проблема для всех.
Теперь, пока подключается '/ user / facebook', очень быстро прокрутите страницу вниз.Это вызовет вызов getJSON.Вместо того, чтобы нажимать '/ user / facebook', вам будет представлен RAW JSON.
Я постараюсь сделать пример страницы со всеми остальными материалами, которые будут удалены как можно скорее, если никто не сможет помочь мне таким образом.