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

JavaScript HTTP GET request works on Firefox and iPad Safari, but not Mac OS Safari

本文关键字:适用于 不适用 Mac Safa OS Safari iPad GET HTTP 请求 Firefox      更新时间:2023-09-26

我正在构建一个简单的网页,它向用户提供一个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都是新手,所以我不确定是否遗漏了一些明显的东西。

在更改位置之前,您应该等待get请求的答复!

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