Javascript HTTP GET请求适用于Firefox和iPad Safari,但不适用于Mac OS Safari
问题描述:
我在放置一个简单的网页,向用户显示一个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的新手,所以我不确定我是否缺少明显的东西。预先感谢您的帮助。
答
您应该在更改位置之前等待您的获取请求的答案!
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");
});
}
完美。有用。你是一位学者和一位绅士 - 谢谢你。 – James 2012-02-08 09:33:00
现已接受。该网站让我等了十分钟,然后才能点击打勾。再次感谢。 – James 2012-02-08 09:42:05