【问题标题】:Facebook App - Ajax request cancelledFacebook 应用程序 - Ajax 请求已取消
【发布时间】:2013-09-17 11:07:11
【问题描述】:

伙伴们, 我正在开发一个 Facebook 应用程序。 事实证明,当我通过服务器的 url 运行它时,它工作正常。但是,当我在 facebook 上运行它时,如果我检查网络请求,尝试保存信息的请求会以某种方式被取消。

这是我服务器的 URL: http://www.conamor.org/apps/aventuracenter/pacman/public/index.php/game

这是来自脸书: https://apps.facebook.com/avcpacman/

如您所见(如果您运行它),它会发出一个 post 请求以保存玩家的分数。但是由于某种原因我无法理解,当我在 facebook 上运行它时,这个请求的状态是 Cancelled。

有什么想法吗? 提前致谢!

【问题讨论】:

  • 您的服务器是否启用了跨域调用?默认情况下,任何 ajax 都必须到托管服务器,除非在远程服务器上为 ajax 调用启用了跨域。
  • 以及如何启用跨域调用?

标签: jquery laravel facebook-apps laravel-3


【解决方案1】:

您需要通过将 Access-Control-Allow-Origin: facebook.com 放入响应标头中来在您自己的服务器上启用 CORS。此外,由于 Facebook 是 https 安全的,而您的网站不是,因此您可能还需要在浏览器中启用混合内容才能使其正常工作。从长远来看,您可能还希望为您的网站启用 https 安全性。

有关 cors 的更多信息:http://www.html5rocks.com/en/tutorials/cors/

关于混合内容的更多信息:https://developer.mozilla.org/en-US/docs/Security/MixedContent

【讨论】:

    【解决方案2】:

    启用CORS(跨域资源共享)添加:

    <?php
        header('Access-Control-Allow-Origin: *');
      the reset of your saving code
    ?>
    

    & 由于您使用的是 AJAX,因此您必须将 JSON 用作 dataType

    $.ajax({ 
            type: "POST",
            url: "http://TO_REMOTE_SERVER/dummy.php",
            data: data,
            datatype: 'json'
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 2022-10-24
      • 2012-07-19
      • 2012-01-19
      • 2015-04-17
      相关资源
      最近更新 更多