- PR -

ASP.NET IsPostBack パート2

投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2004/09/27
投稿数: 71
投稿日時: 2005-06-24 12:22
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22330&forum=7&4より、
ブラウザから最初のページを要求したからMethodがGETになり、IsPostBackがFalseになるのは分かりました。

では、ブラウザから最初のページ要求のMethodをPOST要求で行うには、どのような方法を使うのでしょうか?これって無理なのでしょうか?
すみません、ASP.NETには直接関係ない質問になってしまい。
よろしくお願いします。

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-24 12:25 ]
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-06-24 12:50
こんにちは。

引用:

未記入さんの書き込み (2005-06-24 12:22) より:
では、ブラウザから最初のページ要求のMethodをPOST要求で行うには、どのような方法


何のために?
何らかのデータをPOSTしたいって事?
であれば、今、アドレスバーに表示されているこのページのURLを見れば、POST以外にもデータを受け渡す方法がある、という事が想像できますよね。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2005-06-24 12:52
POSTだろうがGETだろうが、実際にサーバに送られているものは
HTTPリクエストとしての文字列にすぎません。
http://www.atmarkit.co.jp/fnetwork/rensai/tcp02/01.html#5
だから、そのResponseをどのような手段で受け取るかはともかく、
投げるまでは何とでもできる。

ただ、ブラウザから、最初のページをPOSTで行うのは、
できないと思います。(普通のブラウザを使う限りという意味ですが)
自分で、プログラムをするしかないと思います。
Applicationから、POST相当のHTTPリクエストの文字列を組み立てて、
そのレスポンスをブラウザコンポーネントに投げ込む
って感じですかね。

以上、私の知識の範囲内で。

冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2005-06-24 13:16
引用:

では、ブラウザから最初のページ要求のMethodをPOST要求で行うには、どのような方法を使うのでしょうか?


「最初にページが表示された」時点で、すでにGET要求されている、という事をよく理解しておくべきかな?
普通にページを読もうとしてブックマークから飛んだ時は(何か細工してない限り)すでにGET要求されています。
(ethreal等を使って見てみるとかして流れを理解すべし。)

初めからPOSTにするには、クライアント側にフォームを用意するか何かしてPOSTする必要があります。
未記入
ベテラン
会議室デビュー日: 2004/09/27
投稿数: 71
投稿日時: 2005-06-24 13:18
きくちゃんさん、ありがとうございます。
引用:
であれば、今、アドレスバーに表示されているこのページのURLを見れば、POST以外にデータを受け渡す方法がある、という事が想像できますよね。


申し訳ございません、私の表現力不足で...。反省
QueryStringの話ではなく、http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22330&forum=7&4の話の続きで、何かの目的の有無ではなく、あくまでブラウザから、最初のページ要求をPOSTで行うことができるか、という些細な質問なのです。
ご迷惑をお掛けして申し訳ございません。

platiniさん、ありがとうございます。
引用:
ただ、ブラウザから、最初のページをPOSTで行うのは、できないと思います。(普通のブラウザを使う限りという意味ですが)


無理ですか...。ちなみに普通のブラウザとはIEやNetscapeのことでしょうか?
他のブラウザ(Mozilaなど)では可能でしょうか?
もし、最初にPOST要求が可能なブラウザがありましたら、ご紹介願いますか。よろしくお願いします。

冬寂さん、ありがとうございます。
引用:
「最初にページが表示された」時点で、すでにGET要求されている、という事をよく理解しておくべきかな?
初めからPOSTにするには、クライアント側にフォームを用意するか何かしてPOSTする必要があります。


GETはページ要求、POSTはデータ送信が目的でしたよね?不安なので確認。
ご迷惑をお掛けして申し訳ございません。
クライアント側でフォームを用意するしかないですか。
ブラウザの役割を考えれば、やはり無理ですよね。残念。

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-24 13:35 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-06-24 13:37 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-06-24 13:48
どんなブラウザだって、最初の要求をPOSTで送ることは出来ますよ。クライアントのHDDにHTMLファイルを保存しておき、そのHTMLファイル内にPOSTを行う処理を記述すればね。でもさ、そんな事しても無意味だよね。

でさ、どんな問題があって、何でPOSTに拘っているわけ?その理由を伝えないと、現実的な解決方法にはたどり着けないと思うよ。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-06-24 15:17
引用:

クライアント側でフォームを用意するしかないですか。



いいえ。サーバ側に置けばいいです。

-- "HTMLPage1.html" --
<form method="post" action="WebFrom1.aspx">
<input type="submit">
</form>
---

ブラウザにHTMLPage1.htmlのURLを入力してsubmitボタンをクリックすると
WebFrom1.aspxにPOST送信(ポストバックではない!)します。

ASP.NETで通常はこのような方法は使いませんが、他の言語のWebアプリでは
よく使う手法でしょう。
未記入
ベテラン
会議室デビュー日: 2004/09/27
投稿数: 71
投稿日時: 2005-06-24 16:04
皆さん、ご迷惑をお掛けして申し訳ございません。
todoさん、ありがとうございます。
引用:
-- "HTMLPage1.html" --
<form method="post" action="WebFrom1.aspx">
<input type="submit">
</form>
---

ブラウザにHTMLPage1.htmlのURLを入力してsubmitボタンをクリックすると
WebFrom1.aspxにPOST送信(ポストバックではない!)します。



引用のやり方は最初のページ(HTMLPage1.html)があり、そこから2番目のページ(WebFrom1.aspx)を呼び出しているので、確かに2番目のページはPOST要求になってます。
しかし、今回質問している内容は、どこかのページからリンクのように呼び出すのではなく、現在のページとは全く関係のないURLをブラウザから最初に呼び出すときのことです。
私の未熟さゆえ、申し訳ございません。

スキルアップ/キャリアアップ(JOB@IT)