Status204を送ると出るダイアログを消すには?
[上に]
[前に]
[次に]
片松 祐司
[E-Mail]
1997/12/29(月) 23:24:01
HTTP1.0では
> 204 No Response
>
> o メソッド: GET, HEAD, POST
> o 要求されるメタ情報 : なし
>
> サーバーはリクエストを受けとったが返す情報がない。クライアントは同じ文書
> を表示した状態のままでいる必要がある。このステータスコードは、主として文書
> を表示したままの状態で、スクリプトへの入力を可能とするためのものである。
>翻 訳 者 :木内貴弘(kiuchi-tky@umin.u-tokyo.ac.jp)
>原文
> 204 No Content
>
> The server has fulfilled the request but there is no new
> information to send back. If the client is a user agent, it should
> not change its document view from that which caused the request to
> be generated. This response is primarily intended to allow input
> for scripts or other actions to take place without causing a change
> to the user agent's active document view. The response may include
> new metainformation in the form of entity headers, which should
> apply to the document currently in the user agent's active view.
>
と書いてあります。
確かに「エラーメッセージを出すな!」とはかかれていませんが、
以下のようなダイアログボックスを表示されてしまうと、
「文書を表示したままの状態で、スクリプトへの入力」
に支障をきたしている様な気がするのですが…
(「HTTP1.0の文書に沿わなくてはならないという事はない。」
という事は知っています。その辺のご指摘はご勘弁を)
・NN3.03[ja] 曰く
文章にデータが含まれていません。
・IE3.02[ja] 曰く
インターネット サイト http://……/nph-test204.cgi を開けません。
処理は正常に終了しました。
それとも私のスクリプトが間違っていて
ちゃんとした回避方法があるのでしょうか?
以下に私のソースを書きます。(perlです)
(試される方はファイル名の先頭に "nph-" をつけてください。)
--------ここから(nph-test204.cgi)
#!/usr/bin/perl
print "HTTP/1.0 204 NoResponse\n";
print "Server: $ENV{'SERVER_SOFTWARE'} $ENV{'SERVER_NAME'}\n";
my($sec,$min,$hour,$mday,$mon,$year,$wday,$ydat,$isdst) = gmtime();
$mon = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") [$mon];
$wday = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat") [$wday];
print "Date: $wday, $mday $mon 19$year $hour:$min:$sec GMT\n\n";
--------ここまで
tommy
1998/01/05(月) 19:24:48
ただ単に、Content-type: の出力がないからじゃないですか?
片松祐司
[E-Mail]
1998/01/06(火) 00:13:44
申し訳ありません。質問の内容がわかりにくかったようで…
先のHTTP1.0の引用から私は
・コードナンバー204は Content(本文) そのものを出力しなくてよい
と理解しました。
(度忘れしてしまいましたが、私が見た数冊のCGIの解説本でも
コード204のサンプルスクリプトは Content-type: は書かれていません。)
そこで以下の事を答えて欲しいのです。
1.Status204でも Content(本文)が必要なのか?
2.今現在表示している入力フォームを読み込み直さずにそのまま表示したまま
"エラーメッセージを出さずに" スクリプトを動作させる事はできないのか?
(エラーメッセージを気にしなければ目的は達成しているのです。)
よろしくお願いします。
[上に]
[前に]
[次に]