「HTTP動詞POSTがパス「[my path]」にアクセスするのに使用されています。パス '[my path]'へのアクセスに使用されたHTTP動詞POSTは許可されていません。
エラーは、POSTメソッドを使用するHTMLフォーム要素を実装しており、そのACTIONパラメータに.aspxページを明示的に定義していないために発生しています。例えば
:
<form action="" method="post">
<input type="submit" />
</form>
上記のHTMLは "/foo/default.aspx" でファイルの上にあります。
ユーザーがaspxファイル(つまり「http:// localhost/foo」)を指定せずにURLをルートディレクトリ "foo"に指定してフォームを送信すると、エラー "The HTTP verb POST usedパス '/ foo'にアクセスすることはできません。 "スローされます。
ただし、ユーザーが「http://localhost/foo/default.aspx」に移動してフォームを送信すると、ACTIONパラメータが空のままであってもすべてがうまくいくようになります。
注:.aspx(default.aspx)ページの名前をACTIONパラメーターに明示的に追加すると、エラーはスローされません。したがって、以下の例は、ユーザーがURL内のファイルの名前を定義しているかどうかに関係なく正常に動作します。
<form action="default.aspx" method="post">
<input type="submit" />
</form>
私は、エラーがスローされた理由として興味があったので、私はクライアント がに POSTメソッドを送信することにより、HTTP要求を行うため、この問題が発生し
を述べMicrosoft KBを読みます静的HTMLページ。 静的HTMLページは POSTメソッドをサポートしていません。
私の場合、私のフォームは静的なHTMLページに送られていないと思われます.HTMLフォームが存在するのと同じページに送られます(default.aspx )...これは、空のままのACTIONパラメーターに暗黙的に指定されています。
フォームのポスティングを行い、ACTIONパラメータを空にしておくようにIISを設定することは可能ですか?
私はアクションを指定しないでください。ブラウザが投稿を行い、アクション(まれ)を指定していないため、一部のプラットフォームやブラウザで奇妙な動作が発生する可能性があります。 – Teson
はい、同じページ自体へのポストバックであっても、常にアクションを指定する必要があります。 –