【问题标题】:POST verb not allowed不允许 POST 动词
【发布时间】:2013-10-27 02:48:08
【问题描述】:

有点基础,但我尝试了一些方法来解决以下错误,但无法得到正确的解决方案。

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <form  method="post">
            <input type="text" name="query1"></input>
            <input type="text" name="query2"></input>
            <input type="submit"></input>

        </form>
    </body>
</html>

运行时出错: HTTP 错误 405.0 - 方法不允许 您正在查找的页面无法显示,因为正在使用无效的方法(HTTP 动词)。

在 IIS 的映射中,我添加了 POST 方法,但它不起作用! 请提出建议!

【问题讨论】:

    标签: html


    【解决方案1】:

    以下代码为我解决了这个问题(它适用于 iis 上的 php)。

    web.config

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers accessPolicy="Read, Execute, Script">
                <remove name="PHP55_via_FastCGI" />
                <add name="PHP55_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" requireAccess="Script" />
                <add name="HTML_via_FastCGI" path="*.html" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" requireAccess="Script" />
                <add name="HTM_via_FastCGI" path="*.htm" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\PHP\v5.5\php-cgi.exe" resourceType="Either" requireAccess="Script" />
            </handlers>
            <security>
                <requestFiltering>
                    <fileExtensions>
                        <add fileExtension=".php" allowed="true" />
                    </fileExtensions>
                    <verbs>
                        <add verb="POST"   allowed="true" />
                        <add verb="GET"    allowed="true" />
                        <add verb="HEAD"   allowed="true" />
                        <add verb="DELETE" allowed="true" />
                        <add verb="PUT"    allowed="true" />
                    </verbs>
            </requestFiltering>
        </security>
    </system.webServer>
    

    【讨论】:

      【解决方案2】:

      在我看来,您有 2 个错误: 1) 如果您的文件扩展名是 *.html,请将其更改为例如 *.asp, *.php 并且它将起作用。 2)input 标签没有结束标签。

      【讨论】:

        【解决方案3】:

        如果没有看到更多,这可能是各种各样的问题。考虑到这一点,以下是针对您的问题的可能修复列表:

        原因 1

        出现此问题的原因是客户端使用以下方式发出 HTTP 请求 不符合 HTTP 规范的 HTTP 方法。

        要解决此问题,请参阅解决方案 1。

        原因 2

        出现此问题是因为客户端通过发送 HTTP 请求 POST 方法到配置为由 静态文件处理程序。例如,客户端将 POST 方法发送到 静态 HTML 页面。但是,为 StaticFile 处理程序不支持 POST 方法。

        要解决此问题,请参阅解决方案 2。

        决议 1

        确保客户端发送的请求包含有效的 HTTP 方法。为此,请按以下步骤操作:

        1. 点击开始,输入记事本 开始搜索框,右键单击记事本,然后单击运行方式 管理员。
        2. 注意如果系统提示您输入管理员密码或 确认、键入密码或提供确认。在文件上 菜单,单击打开。在文件名框中,键入 %windir%\system32\inetsrv\config\applicationhost.config,然后 点击打开。
        3. 在 ApplicationHost.config 文件中,找到 标记。
        4. 确保所有处理程序都使用有效的 HTTP 方法。
        5. 保存 ApplicationHost.config 文件。

        决议 2

        将 POST 请求发送到配置为由 StaticFile 处理程序以外的处理程序(例如,ASPClassic 处理程序)。或者,更改正在由 StaticFile 处理程序,使其成为 GET 请求而不是 POST 请求。

        MSDN Source

        【讨论】:

          猜你喜欢
          • 2011-07-11
          • 1970-01-01
          • 1970-01-01
          • 2011-08-28
          • 1970-01-01
          • 2011-12-21
          • 2012-06-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多