0

我在一台服务器上有一个 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();


但是没有这样的标题。有决定吗?我的错误在哪里?

4

2 回答 2

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方法有其自身的局限性

于 2010-05-14T13:47:28.813 回答
0

据我了解,您需要请求字段,而不是标题。尝试:

Request["asd"]
于 2010-05-14T13:13:28.160 回答