0

我不确定这里发生了什么,但我无法获得成功的回应。这是我的代码:

function sendCallAjaxUsingJson(theUrl, theData, successCallbackFunction, timeoutCallbackFunction, otherErrorCallback, timeoutValueMilli)
{
    var successFn = successCallbackFunction; 
    var timeoutFn = timeoutCallbackFunction; 
    var otherFn = otherErrorCallback;
    if(!(typeof successFn === 'function') || !(typeof timeoutFn === 'function') || !(typeof otherFn === 'function')) 
        return false;

$.ajax({
        type: "POST",
        url: theUrl,
        timeout:timeoutValueMilli,
        dataType: 'json',
        data: { json: JSON.stringify(theData) },
        success:successFn,
        error: function(x, t, m) {
                   if(t==="timeout") {
                        timeoutFn();
                    } else {
                        otherFn();
                    }
                }
    });
}

在服务器端,我使用的是 PHP。

我可以通过使 PHP 脚本sleep持续 2 秒并使用 1000 毫秒超时来触发超时功能。超时功能正确执行。但是,当我只是从脚本中回显一个字符串时,我没有触发成功函数。取而代之的是otherFn从上方燃烧的火焰。使用 Firebug,我可以看到我从脚本中回显的字符串已成功接收。

那么为什么要调用错误脚本呢?似乎一切都成功了,但它触发了错误功能。

4

0 回答 0