【问题标题】:Ajax doesn't work on the Opera browserAjax 不能在 Opera 浏览器上运行
【发布时间】:2010-11-20 15:23:16
【问题描述】:

我在我的应用程序上使用 jQuery AJAX,而最新版本的 Opera 并没有显示任何 AJAX。适用于所有其他浏览器。

在头部:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

我一直在思考这个问题,无法想出解决方案。我没有收到任何页面错误。有比我更聪明的人可以指导我找到解决方案吗?

这是一个示例代码:

<fb:serverFbml width = "600px">
<script type="text/fbml">
  <fb:fbml>
      <fb:request-form
                action="<?=$conf['dir']['app_url'];?>test.php"
                method="POST"
                target="_top"
                invite="false"
                type="NAME"
                content="TEST <fb:req-choice url='<?=$conf['dir']['app_url'].'test.php?inviter='.$fbme['id']?>' label='TEST' />"
                >

                <fb:multi-friend-selector
                showborder="false" 
                cols="4" 
                actiontext="TEST">
                </fb:multi-friend-selector>
    </fb:request-form>
  </fb:fbml>
</script>
</fb:serverFbml>

【问题讨论】:

  • jQuery 确实在 Opera 中工作,它必须特定于您的代码。发布您的 ajax 调用,以便我们对其进行测试。
  • 嗯,它是一个 facebook 应用程序。更奇怪的是,即使是 facebook 邀请 ajax 表单也没有加载。这意味着 ajax 调用本身没有什么特别的错误。我唯一能想到的是页面本身有一些东西被乱码了,但我没有收到任何错误!
  • 这是我用于邀请系统的代码...
  • @Peter Johansson:您可以编辑您的原始帖子!

标签: jquery ajax facebook opera


【解决方案1】:

Opera 对跨域 javascript 通信更加严格。一种解决方法是使用 js 文件的本地代理。

使用以下内容创建一个名为 channel.html 的频道文件:

<script src="http://connect.facebook.net/us_US/all.js"></script>

将此文件放入可公开访问的文件夹中,并将其添加到 channelUrl 配置中:

FB.init({ appId: myFBAppId, status: true, cookie: true, xfbml: true, channelUrl: "http://xxx.net/channel.html" });

【讨论】:

    【解决方案2】:

    这是否适用于新发布的 Opera 11 测试版?我们至少有一个影响 Facebook Connect 的修复程序(但是它在 browser.js 中,所以它只有在 http://www.opera.com/docs/browserjs/ 显示 browser.js 处于活动状态并且最近更新时才有效)。

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2013-04-01
      相关资源
      最近更新 更多