我在一台服务器上有一个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“key”:
Request.Headers["key"].ToString();
但是没有这样的标题。有一个决定吗?我的错误在哪里?
答案 0 :(得分:0)
据我了解你需要请求字段,而不是标题。尝试:
Request["asd"]
答案 1 :(得分:0)
您正在从服务器端添加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
方法有自己的limitations。