Я получаю сообщение об ошибке: «HTTP-глагол POST, используемый для доступа к пути« [мой путь] », не разрешен».
Ошибка вызвана тем фактом, что я реализую элемент формы HTML, который использует метод POST и не определяет явно страницу .aspx в своем параметре ACTION.
Например:
<form action="" method="post">
<input type="submit" />
</form>
Приведенный выше HTML-код находится в файле "/foo/default.aspx".
Теперь, если пользователь указывает URL-адрес на корневой каталог «foo» без указания файла aspx (т. Е. «http://localhost/foo")», а затем отправляет форму, появляется ошибка «HTTP-глагол POST, используемый для доступа к пути« / foo »). не допускается. "будет брошен.
Однако, если пользователь переходит к «http://localhost/foo/default.aspx" и затем отправляет форму, все идет хорошо (даже если параметр ACTION оставлен пустым).
Примечание. Если я явно добавлю имя страницы .aspx (default.aspx) в параметр ACTION, ошибок не будет. Поэтому приведенный ниже пример работает нормально, независимо от того, определяет пользователь имя файла в URL или нет.
<form action="default.aspx" method="post">
<input type="submit" />
</form>
Мне было любопытно, почему выдается ошибка, поэтому я прочитал Microsoft KB , в котором указано
Эта проблема возникает из-за того, что клиент
делает HTTP-запрос, отправив
Метод POST для статической HTML-страницы.
Статические HTML-страницы не поддерживают
POST метод.
Полагаю, в основе объяснения есть смысл, однако в моем случае моя форма не отправляется на статическую HTML-страницу - она отправляется на ту же страницу, на которой живет HTML-форма (default.aspx) .. ... это подразумевается для параметра ACTION, который остается пустым.
Можно ли настроить IIS (или иным образом), который позволит нам выполнять POST-форму и сохранять параметр ACTION пустым?