2010-11-20 58 views
0

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

头:

<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> 
+2

也许发布一些代码? – cambraca 2010-11-20 15:24:56

+3

jQuery **不能在Opera中工作,它必须是特定于您的代码的。发布您的ajax调用,以便我们可以测试它们。 – Marko 2010-11-20 15:25:54

+0

以及它是一个Facebook应用程序。更奇怪的是,即使facebook邀请Ajax表单加载。意思是说ajax自己并没有什么特别的错误。我能想到的唯一的事情就是页面上有东西被加扰,但我没有得到任何错误! – Petrus 2010-11-20 15:29:27

回答

0

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" }); 
+0

您应该用四个空格缩进代码。 – SLaks 2010-11-21 21:35:47

0

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

相关问题