Facebook Like按钮不会在Azure网站上显示http

时间:2014-11-11 05:18:52

标签: facebook azure

我有一个天蓝色的网站(http://ekpowestore.azurewebsites.net/),它不会在资源管理器或Firefox中显示类似Facebook的按钮。它适用于Chrome和Safari。然而,如果我将地址更改为https(如https://ekpowestore.azurewebsites.net/中所示),则Like和Share按钮可以正常呈现。

喜欢https并不像http那样。我想我可以推荐人们访问https网站,但我仍然对根本原因感到好奇。

当然,在最终在我的天蓝色网站上抛出几乎空白的页面之前,我尝试了大约100种不同的东西。

2 个答案:

答案 0 :(得分:0)

当尝试在HTTP请求上加载Facebook脚本时,您的页面似乎返回307“内部重定向”。我不确定,但你可能在你的javascript上使用“Protocol relative”引用

js.src = "//connect.facebook.net/en_US/sdk.js";

将使用当前协议重定向操作(https://connect.facebook ....如果您使用的是HTTPS或HTTP)。你可以尝试用完整的网址替换它来尝试一下吗?

例如

js.src = "https://connect.facebook.net/en_US/sdk.js";

答案 1 :(得分:0)

我放弃了。这不是o.p.的实际答案,所以我不会这样做。但这是我为解决这个问题所做的 - 所以也许有人会觉得这很有用。

请注意,我确实把整个应用程序归结为一个带有facebook插件的HTML文档 - 没有其他依赖项 - 然而仍然IE和FF没有爱,Safari和Chrome很好。这是使用协议相对Facebook路径(即 - " // connect.facebook.net/en_US/sdk.js")和指定的https路径(即" https://connect.facebook.net/en_US/sdk.js& #34)

因此,与Gaurav指出的可能与Facebook引用一起发生的http - https混合内容大战相反,我改变了Azure网站,因此它始终将http转发到https。问题解决了,继续前进('问题解决了,而且问题与回答的问题略有不同')。

添加了一个web.config文件,其中包含以下内容:

````

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <rewrite>
      <rules>
        <rule name="Redirect HTTP to HTTPS" stopProcessing="true">
          <match url="(.*)"/>
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$"/>
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/>
        </rule>
      </rules>
    </rewrite>
</system.webServer>