对于我公司网站上的其中一个页面,我们必须验证用户的电话号码。为此,我使用AJAX调用语音XML应用程序,该应用程序调用用户提供的电话号码,并等待他们输入随机生成的PIN。一旦我们从语音应用程序获得响应(正确的PIN,错误的PIN或无应答),它就会转发该响应并完成AJAX呼叫。
整个过程可能需要一分钟,除了Chrome之外,效果非常好。使用Chrome时,我会看到弹出窗口显示“此页面似乎没有响应......”如果我忽略弹出窗口并让呼叫完成,则一切正常。调用结束,AJAX完成,用户被重定向到一个页面,说明验证是否成功。
我正在寻找一种方法来避免Chrome将网页标记为无响应。管理层担心它会显得不专业,如果客户选择杀死无响应的页面提交,则永远不会完成。
如果有任何影响,AJAX调用会在iFrame内的表单提交上发生。
function callNow()
{
// Disable the button so they don't keep clicking while the call is going on.
$("#call_now").attr("disabled", "disabled");
$("#call_now").unbind("click");
$(".state_a").hide();
$(".state_b").show();
// Wait 50 msec so that the 'processing' field can show.
setTimeout(function() {
// Make an ajax call to initiate the call
$.ajax({ url: "/ajax-quicksign-verify-now.php",
type: "POST",
async: false,
data: {action: 1,
number: $("#number").val(),
pin: $("#pin").text()},
success: function (response) {
if (response == 1) {
$("#verified").val("true");
} else {
$("#verified").val("false");
}
$("#quicksign_register").submit();
return;
}
});
}, 50);
答案 0 :(得分:0)
此问题出现在async: false
,导致页面无响应,请将其删除。
或者将其更改为async: true
。