ここで何が起こっているのかわかりませんが、成功した応答を得ることができません。これが私のコードです:
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 を使用すると、スクリプトからエコーした文字列が正常に受信されたことがわかります。
では、なぜエラー スクリプトを呼び出すのでしょうか。すべてが成功したように見えますが、エラー関数が起動します。