私は、クライアント サーバー ベースのアプリケーションであるクロス プラットフォームのモバイル ソリューションに取り組んできました。サーバーへのWebサービス呼び出しを行うためにajax呼び出しを使用しています。ほとんどの Web サービスは正常に動作していますが、要求に基づいてサーバー側で実行する必要がある計算があり、応答に遅延がある場合、応答としてステータス 0 が返されます。タイムアウトオプションを試してみましたが、役に立ちませんでした。参照用に同じコード スニペットを追加します。
$.ajax({
type: "POST",
url: wsUrl,
contentType: "text/xml",
dataType: "xml",
timeout: 300000,
data: soapRequest,
success: processSuccess,
error: processError
});
function processSuccess(data, status, req)
{
}
function processError(data, status, req)
{
console.log(data+'--------- '+status+'-------- '+req);
}
サーバーの応答が速い場合、期待どおりの応答が得られることがありますが、ほとんどの場合、ステータス 0 エラーが発生します。ほとんどの場合、2 分後にこのエラーが発生します。ネイティブ Android アプリケーションで同じコードを試すと、問題なく正常に動作します。完全な応答がサーバーからフェッチされるまで、要求が壊れないようにするオプションはありますか? 私が間違っているかもしれませんが、そうでない場合、Web サービスの呼び出し中にターンアラウンドタイムを設定するオプションはありますか? これはモバイル ブラウザ ベースのアプリケーションであるため、応答に 2 分以上かかる場合、ブラウザにはステータス 0 応答で要求をキャンセルするオプションがあります。エラーメッセージすら表示されません。さらに情報が必要な場合は、お知らせください。