どこで開始されたかに関係なく、ページ上のすべての 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);
}
}
});
すべてゼロの成功です。おそらく私はコードをあまりにも長く見つめていて、それは明らかですが、関数を呼び出すことができません.