基于使用FBJS-bridge与PHP通信的flash应用程序有问题。当有人第一次使用该应用程序时,会要求他/她获得各种权限。之后,flash与ajax联系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和参数与工作时相同。没有检测到闪存或JS错误...... 谁知道这里有什么问题?也许facebook又错了,因为这几天前都在工作......
答案 0 :(得分:0)
ajax.requireLogin = true应该因某种原因设置为false