我不确定这里发生了什么,但我无法得到成功的回复。这是我的代码:
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毫秒超时来触发超时功能。 Timeout功能正确执行。但是,当我只是从脚本中回显一个字符串时,我没有触发成功函数。相反,otherFn
从上方开火。使用Firebug,我可以看到我从脚本中回显的字符串已成功接收。
那为什么要调用错误脚本?看起来一切都很成功,但它会触发错误功能。