0

1つのサーバーに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>

次に、他のドメインで-他のアプリケーションもあります-次のコードでヘッダーの「キー」を取得しようとしています:

Request.Headers["key"].ToString();


しかし、そのようなヘッダーはありません。ディシジョンはありますか?私の間違いはどこですか?

4

2 に答える 2

0

私が理解したように、ヘッダーではなくリクエストフィールドが必要です。試す:

Request["asd"]
于 2010-05-14T13:13:28.160 に答える
0

サーバー側から http ヘッダーを追加してから、クライアント側からフォームを投稿しようとしています。

したがって、ヘッダーを失います。

私の知る限り、フォーム送信を使用してクライアント側から 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 に答える