AJAX导致Chrome称该网站没有响应

时间:2015-12-14 19:23:21

标签: php jquery ajax google-chrome

对于我公司网站上的其中一个页面,我们必须验证用户的电话号码。为此,我使用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);

1 个答案:

答案 0 :(得分:0)

此问题出现在async: false,导致页面无响应,请将其删除。

或者将其更改为async: true