来自 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>
【讨论】:
<%@ Page Language="C#" %>
指令必须是文件的第一行。
如果文件名称不正确,简单地重命名为 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 网站页面?