代码之家  ›  专栏  ›  技术社区  ›  stan

回调函数参数问题

  •  1
  • stan  · 技术社区  · 15 年前

    我正在为 FB.Connect.showPermissionDialog() 接受权限和可选回调函数的函数。

    应该是通过的 null 如果用户拒绝权限对话框。但由于某种原因,即使权限请求失败,我的脚本也总是发出POST请求。

    echo("FB.ensureInit (  function () { 
            FB.Connect.showPermissionDialog('email,offline_access',
            function(accepted) {
                 if(accepted==null) {alert('failure');} else {
                 $.post(\"http://www.domain.com/permissions.php\",
                       { username:$userID,mode:'accepted'});}    
            });
            });"); 
    

    不知道为什么它没有正确地读取接受的值。谢谢你的帮助。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Kenan Banks    15 年前

    我的第一个猜测是 null 实际上并没有返回值,而是返回了一些其他类似于false的值。

    我会尝试更改为测试所有类似假值:

    if (!accepted) {alert('failure')} else { 
    ...
    
        2
  •  1
  •   Mike Robinson    15 年前

    处理Firebug:

    console.log(accepted)
    

    看看你能得到什么。可能是未定义的,根据您的逻辑,它仍然通过。

        3
  •  1
  •   Cᴏʀʏ bcherry    15 年前

    也许你应该改变你的逻辑:

    echo("FB.ensureInit (  function () { 
            FB.Connect.showPermissionDialog('email,offline_access',
            function(accepted) {
                 if(accepted !== null) {
                 $.post(\"http://www.domain.com/permissions.php\",
                       { username:$userID,mode:'accepted'});}
                 } else {alert('failure');}
            });
            });
       ");