Горячий, чтобы получить пользовательский http-заголовок в asp.net?
У меня есть приложение asp.net на одном сервере. Там я добавил код на стороне сервера в Page_Load:
Response.AddHeader("key", "password-key-from-hotel");
На стороне клиента у меня есть форма:
<form ... action="www.link-to-another-domaint" >
<input type="hidden" id="asd" value="fgh" >
....
</form>
<script type="text/javascript">
document.forms[0].submit();
</script>
Затем в другом домене - есть и другое мое приложение - я пытаюсь получить ключ "hedaer" с помощью этого кода:
Request.Headers["key"].ToString();
Но такого заголовка нет. Есть ли решение? Где моя ошибка?
2 ответа
Как я понял, вам нужно поле запроса, а не заголовок. пытаться:
Request["asd"]
Вы добавляете заголовок http со стороны сервера, а затем пытаетесь опубликовать форму со стороны клиента.
Итак, вы потеряете свой заголовок.
AFAIK, вы не можете добавить http-заголовок со стороны клиента с отправкой формы (в качестве исключения может быть XHR и другие плагины; но, похоже, ваш пост междоменный, поэтому ajax не будет работать).
Я не понимаю всей причины этого, но самый простой способ передать пользовательский заголовок с одной страницы на другую - это использовать Server.Transfer
метод.
Исходная страница:
Response.AppendHeader("key", "password-key-from-hotel");
Server.Transfer("www.link-to-another-domain");
Страница назначения (даже другой домен):
string key = Request.Headers["key"];
Это должно работать. Но Server.Transfer
Метод имеет свои ограничения.