我正在为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'});}
});
});");
不确定为什么它没有正确读取接受的值。谢谢您的帮助。
答案 0 :(得分:3)
我的第一个猜测是实际上没有返回Javascript null
值,而是返回了一些其他类似false的值。
我会尝试更改为测试所有类似虚假的值:
if (!accepted) {alert('failure')} else {
...
答案 1 :(得分:1)
使用萤火虫:
console.log(accepted)
看看你得到了什么。可能是未定义的,根据你的逻辑仍然通过。
答案 2 :(得分:1)
也许你应该改变你的逻辑:
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');}
});
});
");