【问题标题】:server error:405 - HTTP verb used to access this page is not allowed服务器错误:405 - 不允许用于访问此页面的 HTTP 动词
【发布时间】:2011-10-14 01:03:37
【问题描述】:

我有一个 php Facebook 应用程序,已上传到 Microsoft 服务器。当我运行应用程序时,我收到此错误。有人知道这是什么原因吗?

405 - 不允许用于访问此页面的 HTTP 动词。你的页面 由于方法无效(HTTP 动词)用于尝试访问。

【问题讨论】:

标签: http-status-code-405 httpverbs


【解决方案1】:

即使您使用的是 IIS 或 apache,我猜您也使用静态 html 页面作为登录页面,并且默认情况下,Web 服务器不允许在 .html 页面上使用 POST 或 GET 动词,facebook 通过调用您的页面POST/GET 动词

解决方案是将页面重命名为 .php.aspx 你应该很高兴:)

【讨论】:

  • 如何配置服务器允许页面?
  • 在某些情况下并不容易。例如,我正在使用 .net mvc。我的登录页面是一个 cshtml,但我不能只更改名称,因为我的控制器调用了特定的 cshtml :( 在这种情况下我该怎么办?
  • 控制器应该处理 post 事件,你需要做这样的事情:[HttpPost] public ActionResult Index() { }
  • 这对我不起作用。我尝试了 .php 并给出了相同的结果。当我尝试 .aspx 时,我得到了 403 禁止错误。
  • 这解决了我的问题。我也发布过的文件夹中有一个旧且未使用的 index.html 页面。我清除了所有不必要的文件(包括 index.html)并开始工作(转到 Default.aspx)
【解决方案2】:

如果您只指定文件夹名称,请确保在 Facebook 应用程序控制面板中任何指定 URL 的末尾都有一个正斜杠

页面标签网址:http://mypagetabserver.com/custom_tab/

【讨论】:

    【解决方案3】:

    这意味着,您在访问某些 http 内容时尝试使用错误的http verb。您需要使用POST 来消费网络服务上的很多内容。我怀疑您尝试使用错误的 http 动词访问 facebook API。

    【讨论】:

    • 如何让服务器允许 POST 动词?
    • 所以您的应用程序直接抛出错误,而不是在您调用网络服务时?当您注释掉调用 facebook 的那部分时,它仍然会出错吗?也许你可以给我们看一些代码?
    • 实际上,即使我只是在 facebook 应用程序中加载 html 页面,而不尝试加载 FB API,它也会显示相同的错误。
    • 那么您的网络服务器配置有问题 (iis ? )。试试本指南somacon.com/p126.php,如果该方法有效,则发布有关服务器故障的问题
    【解决方案4】:

    我通过在我的 IIS webconfig 中添加这些行来修复我的问题。

    <httpErrors>
        <remove statusCode="405" subStatusCode="-1" />
        <error statusCode="405" prefixLanguageFilePath="" path="/my-page.htm" responseMode="ExecuteURL" />
    </httpErrors>
    

    【讨论】:

      【解决方案5】:

      我也已经为这个头发拉了几个小时了。但 fakeartist 看起来是正确的 - 我将文件扩展名从 .htm 更改为 .php,现在我可以在 Facebook 中看到我的页面了!如果您将扩展名更改为 .aspx,它也可以工作 - 也许它只需要成为服务器端扩展名(我没有尝试过使用 .jsp)。

      【讨论】:

        【解决方案6】:

        尝试重命名默认文件。就我而言,最近迁移到 IIS7.5 时出现 405 错误。我将 index.aspx 更改为 default.aspx,它立即为我工作。

        【讨论】:

          【解决方案7】:

          在我的情况下,IIS 很好,但是.. 呃.. 文件夹中除 web.config 之外的所有文件都已被删除(在测试站点上进行了一半的手动部署)。

          【讨论】:

            【解决方案8】:

            当我使用 jquery 并且 lib 不在给定路径中时出现此错误,一旦添加了 jquery lib,错误就消失了。 [文件名-calculate.html]

            【讨论】:

              【解决方案9】:

              您可以将这些行添加到 web.config:

              <system.webServer>
                <modules>
                  <remove name="WebDAVModule" />
                </modules>
                <handlers>
                  <remove name="WebDAV" />
                </handlers>
              </system.webServer>
              

              【讨论】:

                最近更新 更多