我想在ASP.Net Web Form应用程序的每个http调用中添加自定义标头(Bearer令牌)。
根据以下链接的建议,我添加了发送附加标头到服务器的代码,但没有成功。
和
<script>
(function() {
(function (open) {
XMLHttpRequest.prototype.open = function (method, url, async, user, password) {
console.log("Adding header");
open.call(this, method, url, async, user, password);
this.setRequestHeader("X-Hello", "There " + new Date());
};
})(XMLHttpRequest.prototype.open);
})();
</script>
并且
<script>
(function() {
(function (send) {
XMLHttpRequest.prototype.send = function (data) {
console.log("Adding header");
this.setRequestHeader("X-Hello", "There");
send.call(this, data);
};
})(XMLHttpRequest.prototype.send);
})();
</script>
我知道这个解决方案本应只适用于POST请求(但实际上并没有)。我可以看到每次POST请求的console.log,但是在服务器端从未看到“X-Hello”头。
使用service worker的冗长解决方案失败了:
return Promise.resolve(new Request(data.url, data));
"构建 'Request' 失败:无法使用模式为 'navigate' 且 RequestInit 不为空的 Request 构建请求。"