【问题标题】:FBJS AJAX.post is not working after permissions dialogFBJS AJAX.post 在权限对话框后不起作用
【发布时间】:2011-07-01 03:18:43
【问题描述】:

我在使用 FBJS-bridge 与 PHP 通信的基于 flash 的 facebook 应用程序方面遇到问题。当有人第一次使用该应用程序时,他/她会被要求提供各种权限。之后,使用 ajax Flash 联系 PHP,但从未发送过请求。当您刷新页面时,一切正常,没有任何问题。 如果您在隐私设置中删除应用程序,请刷新页面并重试 - 会发生同样的错误。如果您允许应用程序,请刷新页面,在其他选项卡中删除应用程序并在上一个选项卡中启动应用程序 - 要求用户提供权限,但在允许应用程序后一切正常。

这是 FBJS 代码

function openPermissions(){
    Facebook.showPermissionDialog(/*permissions string*/, permissionOnDone);
}
function permissionOnDone(perms){
    if (!perms) {
        document.getElementById("indexswf").callSWF('noallow');
    } else {
        document.getElementById("indexswf").callSWF('allow');
    }
}

function ajaxCall(url,parameters){
    var params = {};
    for(var i=0;i<parameters.length;i+=2){
        params[parameters[i]]=parameters[i+1];
    }

    ajax = new Ajax();
    ajax.requireLogin = true;
    ajax.responseType = Ajax.RAW;
    ajax.ondone = function(data){
        document.getElementById("indexswf").callSWF('parseAjax', data);
    }

    ajax.post('http://the.url.to/the_real_server/not_to_the_fb_url/'+url,params);
}

调用openPermissions 来显示权限对话框,并在允许flash 时调用allow() 函数。在 Flash 中,allow() 调用 JS 函数 ajaxCall(),它应该发出 ajax 请求。但是,ajax.post 从不发送请求。我肯定知道,因为从未调用过 flash 函数 parseAjax,而且浏览器中的调试工具也没有显示任何 ajax 请求。 URL 和参数与工作时相同。没有检测到 flash 或 JS 错误... 有人知道这里有什么问题吗?也许 facebook 又出现了错误,因为这一切都在几天前工作......

【问题讨论】:

  • fbjs 将在 3 月被弃用 developers.facebook.com/blog/post/462(最后一段)所以最好构建 iframe 应用程序
  • 看起来 ajax.requireLogin = true 一直在制造问题。我将它设置为 false,它现在可以工作了......

标签: ajax flash actionscript-3 facebook fbjs


【解决方案1】:

ajax.requireLogin = true 出于某种原因应该设置为 false

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 2022-07-08
    • 2016-11-20
    • 2020-03-06
    • 1970-01-01
    • 2014-09-04
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多