Я хочу добавить пользовательские заголовки (токен на предъявителя) к каждому вызову http в приложении веб-формы ASP.Net.
Используя рекомендации в следующих ссылках, я добавил код для отправки добавленных заголовков на сервер безрезультатно.
Как перехватить все http-запросы, включая отправку формы
и
Как изменить заголовки запроса?
<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 (но это не так). Я вижу console.log для каждого сообщения, но заголовок "X-Hello" никогда не отображается на стороне сервера. .
Длинное решение с использованием сервисного работника не удалось:
return Promise.resolve(new Request(data.url, data));
"Не удалось сгенерировать запрос": невозможно сгенерировать запрос с запросом, режим которого "навигация" и непустой RequestInit. "