是否可以为页面上的所有 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);
}
}
});
都是零成功。也许我只是盯着代码太久了,这很明显,但我就是无法调用要调用的函数。