2012-02-08 217 views
1

我在放置一个简单的网页,向用户显示一个jQuery滑块以选择一个值。滑块的“停止”事件应该触发一个GET请求,该请求会将值发送到一些PHP代码来处理响应。用户然后被重定向到另一页:Javascript HTTP GET请求适用于Firefox和iPad Safari,但不适用于Mac OS Safari

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的新手,所以我不确定我是否缺少明显的东西。预先感谢您的帮助。

回答

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

完美。有用。你是一位学者和一位绅士 - 谢谢你。 – James 2012-02-08 09:33:00

+0

现已接受。该网站让我等了十分钟,然后才能点击打勾。再次感谢。 – James 2012-02-08 09:42:05

相关问题