Ajax例外処理の試行、キャッチ、エラー、完了

1. サンプルコード:

    $("#QueryCaseResultIdCSV").click(function () {
    
    
        var caseResultId = $("#caseResultId").val();
        if ($("#caseResultId").val() == "") {
    
    
                alert("报告id为空,请重新输入。");
        }else{
    
    
            $.ajax({
    
    
                type: "get",
                url: "/getYcCaseIdResultCSV",
                data: {
    
    
                    caseResultId: caseResultId,
                },
                async: false,
                success: function (msg) {
    
    
                    try {
    
    
                        if(msg.length > 44){
    
    
                            window.open('/getYcCaseIdResultCSV?caseResultId=' + caseResultId);
                        }else {
    
    
                            alert("获取CSV报告数据为空,请检查报告id。");
                        }
 
                    }catch(err) {
    
    
                       alert("服务异常:数据获取异常,请检查报告id。");
                    }
                },
 
                // Ajax接口出现错误时执行下述代码
                error: function(XMLHttpRequest, textStatus, errorThrown) {
    
    
                    alert("服务异常:数据获取异常,请检查报告id。");
                    console.log(XMLHttpRequest.status);
                    console.log(XMLHttpRequest.readyState);
                    console.log(textStatus);
                },
 
                // 请求完成后回调函数 (请求成功或失败时均调用)。
                complete: function(XMLHttpRequest, textStatus) {
    
    
                        this; // 调用本次AJAX请求时传递的options参数
                }
 
            });
        } ;
    });

2. Jquery の Ajax パラメーターの詳細なリスト:

パラメータ名 タイプ 説明する
URL (デフォルト: 現在のページのアドレス) リクエストを送信するアドレス。
タイプ (デフォルト: "GET") リクエストメソッド ("POST" または "GET")、デフォルトは "GET" です。注: PUT や DELETE などの他の HTTP リクエスト メソッドも使用できますが、一部のブラウザでのみサポートされます。
タイムアウト 番号 リクエストのタイムアウト(ミリ秒)を設定します。この設定はグローバル設定をオーバーライドします。
非同期 ブール値 (デフォルト: true) デフォルトでは、すべてのリクエストは非同期です。同期リクエストを送信する必要がある場合は、このオプションを false に設定します。同期リクエストはブラウザをロックするため、ユーザーはリクエストが完了するまで他の操作を実行する必要があることに注意してください。
送信前 関数 XMLHttpRequest オブジェクトの機能は、カスタム HTTP ヘッダーの追加など、リクエストを送信する前に変更できます。XMLHttpRequest オブジェクトが唯一のパラメータです
function (XMLHttpRequest) {
this; // この Ajax リクエストのオプション
}
コンテンツタイプ (デフォルト: "application/x-www-form-urlencoded") サーバーに情報を送信するときのコンテンツのエンコーディング タイプ。デフォルト値はほとんどのアプリケーションに適しています。
データ オブジェクト、文字列 サーバーに送信されたデータ。リクエスト文字列形式に自動的に変換されます。GET リクエストの URL に追加されます。この自動変換を無効にするには、processData オプションの説明を参照してください。キー/値形式である必要があります。配列の場合、jQuery は異なる値に同じ名前を自動的に割り当てます。たとえば、{foo:["bar1", "bar2"]} は '&foo=bar1&foo=bar2' に変換されます。
データ・タイプ サーバーによって返されることが予期されるデータ型。指定しない場合、jQuery は HTTP パッケージの MIME 情報に基づいて自動的に responseXML または responseText を返し
、それをコールバック関数のパラメータとして渡します。使用可能な値:
"xml": jQuery で処理できる XML ドキュメントを返します。
"html": プレーンテキストの HTML 情報を返します。スクリプト要素が含まれます。
"script": プレーンテキストの JavaScript コードを返します。結果は自動的にキャッシュされません。
"json": JSON データを返します。
「jsonp」: JSONP形式。「myurl?callback=?」などの JSONP 形式を使用して関数を呼び出すと、jQuery はコールバック関数を実行するために ? を正しい関数名に自動的に置き換えます。
キャッシュ ブール値 (デフォルト: true) jQuery 1.2 の新機能で、これを false に設定すると、ブラウザーのキャッシュからリクエスト情報が読み込まれません。
完了 関数 リクエスト完了後のコールバック関数 (リクエストが成功または失敗したときに呼び出されます)。パラメータ: XMLHttpRequest オブジェクト、成功情報文字列。
function(XMLHttpRequest, textStatus) { this; // the options for this ajax request}
エラー 関数 (デフォルト:自動判定(xmlまたはhtml)) リクエストが失敗した場合にこのメソッドが呼び出されます。このメソッドは、XMLHttpRequest オブジェクト、エラー メッセージ、および (おそらく) キャプチャされたエラー オブジェクトの 3 つのパラメータを取ります。
function (XMLHttpRequest, textStatus, errorThrown) {// 通常情况下textStatus和errorThown只有其中一个有值 this; // the options for this ajax request}
グローバル ブール値 (デフォルト: true) グローバル AJAX イベントをトリガーするかどうか。false に設定すると、ajaxStart や ajaxStop などのグローバル AJAX イベントはトリガーされません。さまざまな Ajax イベントの制御に使用できます
変更された場合 ブール値 (デフォルト: false) サーバーデータが変更された場合にのみ新しいデータを取得します。HTTP パケットの Last-Modified ヘッダー情報を使用して判断します。
プロセスデータ ブール値 (デフォルト: true) デフォルトでは、送信されたデータは、デフォルトのコンテンツタイプ「application/x-www-form-urlencoded」に一致するオブジェクト (技術的には文字列ではない) に変換されます。DOM ツリー情報または変換したくないその他の情報を送信する場合は、false に設定します。
成功 関数 リクエストが成功した後のコールバック関数。このメソッドには 2 つのパラメータがあります。サーバーはデータを返し、ステータスを返します。
function (data, textStatus) {// data could be xmlDoc, jsonObj, html, text, etc...this; // the options for this ajax request}

おすすめ

転載: blog.csdn.net/weixin_40362806/article/details/131050319