【问题标题】:jquery's ajax not working in facebook appsjquery 的 ajax 在 Facebook 应用程序中不起作用
【发布时间】:2010-11-14 06:49:28
【问题描述】:

我正在尝试创建一个 facebook 应用程序,除了我用来从第一个选择框中选择的项目填充第二个框的 ajax 部分之外,一切都工作正常。

我正在使用 jquery (v1.3.2) 来完成此操作。这个 ajax 在我为其占用空间的主机上工作得非常好,但它在 facebook 中不起作用。

这是我关于这个问题的问题,

  • canvas 页面 url 是否需要与我的应用程序名称相同。 (在我的情况下是不同的)

我在 facebook 内父选择框的 onchange 事件中收到此错误。

访问受限 URI 被拒绝”代码:“1012

  • 可能出了什么问题...?请帮我解决这个问题。

谢谢

【问题讨论】:

  • 这是一个什么样的 Facebook 应用程序? FBML 还是 IFrame?
  • CakePHP 与此有什么关系?
  • 嗯,它是一个 iframe 应用程序,对于第二条评论,该应用程序已经内置在 cakephp 中。

标签: php jquery ajax facebook cakephp


【解决方案1】:

除了运行脚本的域之外,您不得从其他站点请求数据。例如,如果您正在运行脚本 www.example.com/script.js,那么您只能对 www.exaple.com 域下的文件进行 ajax,而不是 www.facebook.com。

有几种方法可以做到:

  • JSONp 是一种方式,但它需要 facebook 回复 jsonp 数据。不是 确定是不是。有关 JSONp 的更多信息here
  • CSSHttpRequest(或 AJACSS)是另一种方式。严重怀疑 facbook 使用这种方法。

【讨论】:

    【解决方案2】:

    使用ajax时有个限制,xmlhttp请求不能是跨域的。见https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript

    一个常见的解决方法是向后端脚本发出 ajax 请求,该脚本实际上会发出跨域请求,即 cURL。

    【讨论】:

      【解决方案3】:

      使用 FBML,您可以使用 FBJS 将 JSON 数据类型发送到您自己的脚本:

      这是文档:http://wiki.developers.facebook.com/index.php/FBJS/Examples/Ajax

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-17
        • 1970-01-01
        • 2013-12-31
        • 1970-01-01
        • 2017-09-10
        • 1970-01-01
        • 2012-06-05
        • 1970-01-01
        相关资源
        最近更新 更多