HTTP GET-запрос Javascript работает на Firefox и iPad Safari, но не на Mac OS Safari - PullRequest
1 голос
/ 08 февраля 2012

Я собираю простую веб-страницу, которая предоставляет пользователю ползунок jQuery для выбора значения.Событие 'stop' из ползунка должно инициировать запрос GET, который отправляет значение в немного кода PHP для обработки ответа.Затем пользователь перенаправляется на другую страницу:

stop: function( event, ui ) {
   var slideValue = $( "#slider" ).slider( "value" );
   $.get('submit.php', { item : slideValue });
   window.location = "thanks.html";
}

Это работает отлично - но только если я использую Firefox или версию Safari для iPad.Оба из них генерируют HTTP-запросы, которые выполняют эту работу.

Проблема в Mac OS Safari.slideValue установлен правильно, и перенаправление происходит - но по какой-то причине GET-запрос не выполняет то, что должен, и код PHP не вызывается.

Вызов submit.php?item=<number> вручную изSafari работает.

Я новичок в JavaScript и jQuery, поэтому я не уверен, что упускаю что-то очевидное.Заранее спасибо за любую помощь.

1 Ответ

2 голосов
/ 08 февраля 2012

Вы должны дождаться ответа на ваш запрос на получение, прежде чем менять местоположение!

stop: function( event, ui ) {
   var slideValue = $( "#slider" ).slider( "value" );
   $.get('submit.php', { item : slideValue },function() {
     window.location = "thanks.html";
   });
}

Если вы используете jQuery 1.5, вы можете использовать отложенный объект:

stop: function( event, ui ) {
   var slideValue = $( "#slider" ).slider( "value" );
   $.get('submit.php', { item : slideValue })
   .success(function() {
     window.location = "thanks.html";
   })
   .error(function() {
     alert("error");
   });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...