来自 aspx 页面的 Facebook 应用程序出现 405 错误

Posted

技术标签:

【中文标题】来自 aspx 页面的 Facebook 应用程序出现 405 错误【英文标题】:405 Error With Facebook App From aspx page 【发布时间】:2012-03-09 05:27:58 【问题描述】:

我正在用 html 开发一个非常简单的自定义 facebook 标签,由一个简单的背景图片和一些链接组成。此页面本身可以正常工作,但是当我转到 facebook 画布页面时,我收到了这个 HTTP 405 错误,

“您正在查找的页面无法显示,因为使用了无效的方法(HTTP 动词)尝试访问。 请尝试以下方法:

如果您认为应该允许此请求,请与网站管理员联系。 确保浏览器地址栏中显示的网站地址拼写和格式正确。 HTTP 错误 405 - 不允许用于访问此页面的 HTTP 谓词。 Internet 信息服务 (IIS)"

根据建议的类似问题,我已将我的页面从 html 文件重命名为 aspx 文件,但错误仍然存​​在。我需要做什么才能显示我的页面?感谢您的帮助。

编辑:html 看起来像这样,我不知道在这么简单的事情中会丢掉什么。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Title</title>
    <style type = "text/css">
        #content width: 520px; height: 775px; background: url('i/background.jpg') top left no-repeat; 
        a display: block; text-indent: -999em; position: absolute; background: url('i/links.png') no-repeat; 
    </style>
</head>
<body>
    <div id = "content">
        <a href = "www.google.com" target = "_blank" id = "link">Link</a>
    </div>
</body>
</html>

编辑以防有人通过谷歌搜索发现此问题,问题是我没有面向公众的网址,因为负责设置服务器的人隐藏了所有内容,因此他可以尝试一些东西。 Woo 内部沟通不畅。

【问题讨论】:

你能展示你正在使用的示例代码或 IFrame 吗? Juicy Scripter 建议我所做的只是更改文件的扩展名。这似乎适用于有类似问题的人。 【参考方案1】:

可能将静态页面的扩展名从.html 更改为.aspx 是不够的,IIS 仍将其限制为仅允许GET 请求,但访问Facebook 上的应用程序通过POST 将数据传递到画布URL。

您可以尝试按照下一篇知识库文章http://support.microsoft.com/kb/942051中的步骤进行操作

【讨论】:

【参考方案2】:

不管你怎么做—— 1. 将 .html 重命名为 .aspx 2.新建一个.aspx文件

FB 抛出同样的错误。并且在本地使用 iFrame 访问的同一页面内容也可以正常工作。

HTTP 错误 405 - 不允许使用用于访问此页面的 HTTP 谓词。互联网信息服务 (IIS)

这是我的 .aspx 代码 -- 如果您找到任何解决方案,请提出建议。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Page Language="C#" %>
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">
<meta content="en-us" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Create My Resume</title>
<style type="text/css">
.auto-style1 
    font-family: Arial, Helvetica, sans-serif;
    font-size: xx-large;

.auto-style2 
    font-family: Arial, Helvetica, sans-serif;

</style>
</head>

<body>

<form id="form1" runat="server" class="auto-style1">
    <strong>Welcome!</strong></form>
<p class="auto-style2"><strong>My first Facebook Application!</strong></p>

</body>

</html>

【讨论】:

&lt;%@ Page Language="C#" %&gt; 指令必须是文件的第一行。 如果文件名称不正确,简单地重命名为 aspx 可能无法解决您的问题。我的意思是,如果 .aspx 页面的 IIS 默认文件是 default.aspx,并且您创建了 index.aspx,那么在使用以 / 结尾的 URL 时,您仍然会收到此错误。您可以将 index.aspx 添加到您的默认文档配置中,或者您可以在您的 facebook 应用配置中指定全名。【参考方案3】:

我对 405 错误的解决方案是将我的 index.html 重命名为 index.php。显然,就我而言,我的网络服务器设置为使用 php。

Facebook 尝试对 index.html(或任何文件名)进行 POST,我相信大多数网络服务器都不允许这样做。 (我相信您可以更改这些必要的,以保留 .html 扩展名)

【讨论】:

【参考方案4】:

答案可能会晚一点,但是... 将字段 index.html 重命名为 default.aspx。如果您使用 aspx 托管,那么您必须为您的应用程序命名索引文件“default.aspx

【讨论】:

这是不正确的,实际上对这里的问题没有帮助。如果问题是不正确/不存在的默认文档,则错误会有所不同。

以上是关于来自 aspx 页面的 Facebook 应用程序出现 405 错误的主要内容,如果未能解决你的问题,请参考以下文章

来自 .aspx 页面的带有授权标头的 Ajax 发布请求给出错误“选项 405(不允许的方法)”

如何将 Facebook 页面中的视频显示到我的 IOS 应用程序?

如何将来自 Google/Facebook 的广告标题连接到我的 wordpress 网站页面?

在 Facebook 页面上嵌入 xat 聊天框

Dialogflow Facebook 集成未响应页面的传入消息

在没有用户交互的情况下发布到 Facebook 页面