将回调参数传递给setTimeout()在IE中不起作用?

ıll*_*llı 2 javascript ajax internet-explorer

我在js setTimeout函数中使用了它在firefox中工作的代码; i,它在几秒钟内重新加载.但不是在IE中工作.我将方法更改为'POST',但请求不支持,然后再次更改为'GET'.有解决方案吗

function getCallDetails(cId){
    $.ajax( {
        url : 'callInfo.html?cId='+cId,
        method : "GET",
         dataType: "json",     
        success : function(data) {
        callResult=data.rows;

        showCallDetails(callResult,cId);
        },
        failure : function(form, action) {
        }
    });
    window.setTimeout(getCallDetails, 1000,[cId]);

}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

您使用的是非IE兼容版本setTimeout.
在IE中,无法将参数传递给回调.

而且,打电话setTimeout是非常错误的; 您将获得指数级更多的并发请求,因为每次调用会产生两个以上的调用.


Phi*_*ein 6

请尝试以下方法:

window.setTimeout(function() { getCallDetails(cId); }, 1000);
Run Code Online (Sandbox Code Playgroud)

此外,我会将该行移至成功回调中.

  • 但为什么要将其转移到成功回调?(失败会发生什么?) (2认同)