Javascript HTTP GET请求适用于Firefox和iPad Safari,但不适用于Mac OS Safari

时间:2012-02-08 09:26:02

标签: javascript jquery javascript-events

我正在整理一个简单的网页,向用户提供一个jQuery滑块来选择一个值。来自滑块的“stop”事件应触发GET请求,该请求将值发送到一些PHP代码以处理响应。然后用户被重定向到另一个页面:

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

这非常有效 - 但只有我使用Firefox或iPad版的Safari。这两个都会生成完成工作的HTTP请求。

问题出在Mac OS Safari上。 slideValue已正确设置,并且重定向发生 - 但由于某种原因,GET请求不会执行应该执行的操作,并且不会调用PHP代码。

从Safari手动调用submit.php?item=<number>

我是JavaScript和jQuery的新手,所以我不确定我是否遗漏了一些明显的东西。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

在更改位置之前,您应该等待获取请求的答案!

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");
   });
}