jquery的ajax在facebook应用程序中不起作用

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

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

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

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

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

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

  • 什么可能是错的……? 请帮我解决这个问题。

谢谢

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

有几种方法可以做到:

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

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

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

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

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