0

どこで開始されたかに関係なく、ページ上のすべての ajax 呼び出しに対して $.ajax beforeSend イベントをキャッチすることは可能ですか?

具体的には、Swagger UI / Swashbuckle を使用しており、ページ上の JS コードを直接変更することはできませんが、SwaggerConfig.cs の .EnableSwaggerUI 呼び出しで InjectJavaScript 呼び出しを使用してスクリプトを挿入できます。Swagger データは私の制御範囲外であり、oauth 設定を表示するように正しく形成されていないため、ユーザーが API キーを入力してヘッダーに配置できるようにする必要があります。

以下を含む複数の反復を試しました。

$(document).on("ajaxStart", function (jqXHR) {
    var key = $('#input_apiKey')[0].value;

    if (key && key.trim() != "") {
        key = "Bearer " + key;
        jqXHR.setRequestHeader("Authorization", key);
    }
});

$(document).on("beforeSend", function (jqXHR) {
    var key = $('#input_apiKey')[0].value;

    if (key && key.trim() != "") {
        key = "Bearer " + key;
        jqXHR.setRequestHeader("Authorization", key);
    }
});

$.ajaxSetup({
    beforeSend: function (jqXHR, settings) {
        var key = $('#input_apiKey')[0].value;

        if (key && key.trim() != "") {
            key = "Bearer " + key;
            jqXHR.setRequestHeader("Authorization", key);
        }
    }
});

すべてゼロの成功です。おそらく私はコードをあまりにも長く見つめていて、それは明らかですが、関数を呼び出すことができません.

4

1 に答える 1