我不确定这里发生了什么,但我无法获得成功的回应。这是我的代码:
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,我可以看到我从脚本中回显的字符串已成功接收。
那么为什么要调用错误脚本呢?似乎一切都成功了,但它触发了错误功能。