我的智慧结束了。
我正在运行此脚本
<script type="text/javascript" charset="utf-8">
jQuery(window).ready(function(){
//alert('running');
var sold = false;
var leads = [
["one", 120],
["two", 0]
];
jQuery.each(leads, function(index, value) {
var _data = "";
jQuery.ajax({
url: "/wp-content/plugins/cUrl/submit_lead.php?lead=" + value[0],
dataType: "json",
//contentType: "application/json; charset=utf-8",
timeout: value[1] * 1000, //Yes i need to wait 120 seconds for "one"
async: false,
cache: false
}).success(function(data) {
_data = data;
console.log(data.status + " Lead: "+ value[0]);
if (data.status == "sold") {
sold = true;
jQuery.ajax({
url: "/wp-content/plugins/cUrl/submit_lead.php?resetSession",
dataType: "json",
//contentType: "application/json; charset=utf-8",
async: false,
cache: false
}).success(function() {
//Silence is golden.
});
window.location.href = data.link;
}
}).error(function(jqXHR, textStatus){
console.log("ERROR: " + textStatus + " Lead: " + value[0]);
});
if (_data.status == "sold") {
return false;
}
});
if (!sold) {
//If we get here, None of the leads were sold.
jQuery.ajax({
url: "/wp-content/plugins/cUrl/submit_lead.php?resetSession",
//contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false
}).success(function(data) {
//Silence is golden.
});
window.location.href = '/thank-you.php';
}
});
</script>
脚本将一些信息提交给submit_lead.php,后者将返回带有状态,消息和链接的json响应。一旦有了这个链接,就需要用?resetSession调用相同的脚本,并将用户重定向到收到的链接。
我关闭了同步因为我需要等到我在尝试“两个”之前得到“一个”的响应,因为如果我收到一个链接就没有必要尝试下一个。
当脚本在FF或Chrome上运行时,它运行正常。在请求通过时会播放一些动画,一旦返回链接,它就会重定向。
当脚本在&lt; = IE8或Safari中运行时,页面sorta加载一半然后等待(动画加载但不动画。)。一旦ajax响应返回,页面突然恢复生机,然后你被重定向。
我已经尝试了窗口就绪并准备好文档,但似乎没有任何工作。
任何建议都将不胜感激。
感谢阅读。
答案 0 :(得分:0)
就像我在评论中说的那样,重新打开异步。
从ajax函数添加重定向或要在回调中执行的任何操作。这很可能是你获得锁定的原因。