web-dev-qa-db-ja.com

HTTPリクエストメソッドのクライアント側の検出

JavaScriptからページのHTTPリクエストメソッド(GETやPOSTなど)を検出することは可能ですか?もしそうなら、どのように?

34
Soldarnal

一言で言えば-いいえ

30
Kevin

私はそうは思わない。この情報が必要な場合は、JavaScriptで確認できるサーバー上で生成された<meta>要素を含めることをお勧めします。

たとえば、PHPの場合:

<meta id="request-method" name="request-method" content="<?php echo htmlentities($_SERVER['REQUEST_METHOD']); ?>">
<script type="text/javascript">
    alert(document.getElementById("request-method").content);
</script>
18
Jim

ページのリファラーを確認できます。

document.referrer == document.URL

同じページの場合、ユーザーがフォームを送信した可能性が非常に高くなります。

もちろんこれには

  • ページからそれ自体にリンクしないこと(とにかくアクセシビリティのために必要です)
  • フォームがそのページとまったく同じページに送信されること
  • ユーザーがリファラーを無効にしなかったこと
7
Andy

この機能が必要な場合は、サーバーに使用されたメソッドを検出させてから、後で読み取ることができるDOM内の何かを変更します。

7
Daniel Papasian

通常の投稿/取得ではこれを行うことはできませんが、xmlhttp呼び出しを使用してgetResponseHeaderを使用すると、この情報にアクセスできます

1
redsquare