jquery的ajax在facebook应用程序中无效

时间:2009-07-27 07:15:52

标签: php jquery ajax facebook cakephp

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

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

以下是我对此问题的疑问,

  • 画布页面网址需要与我的应用程序名称相同。 (在我的情况下,它是不同的)

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

  

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

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

由于

3 个答案:

答案 0 :(得分:6)

您不能从运行脚本的域以外的其他站点请求数据。例如,如果您运行的是脚本www.example.com/script.js,那么您只能在www.exaple.com域下获取文件,而不是www.facebook.com。

有几种方法可以做到:

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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