edge.create コールバックで本当に奇妙な問題に直面しています。
私がやっていることは、edge.create または edge.remove イベントが発生するたびにサーバーへの ajax 呼び出しを実行することです (最初はページが好きで、2 番目は好きではありません)。
コードはこちら
// this will fire when any of the like widgets are "liked" by the user
FB.Event.subscribe('edge.create', function(href, widget) {
var dataSend = 'ajaxFace=true&submitAdd=true&code='+SomeCodeToAdd;
$.ajax({
type: 'POST',
url: 'http://somewebpage.com',
data: dataSend,
success: function(data) {
alert(data);
},
erro: function(data) {
alert('Try again later');
}
});
});
//this will fire when any widgets are "disliked" by the user
FB.Event.subscribe('edge.remove', function(href, widget){
var dataSend = 'ajaxFace=true&submitDelete=true&code='+SomeCodeToRemove;
$.ajax({
type: 'POST',
url: 'http://somewebpage.com',
data: dataSend,
success: function(data) {
alert(data);
},
erro: function(data) {
alert('Try again later');
}
});
});
さて、どうしたものか。
「edge.remove」イベントの機能は問題なくスムーズに動作します。
しかし、ユーザーがコードのようにクリックすると、ajax 呼び出しの成功部分で実行されないだけなので、alert('test'); のような単純なアラートを試しました。しかし、何も起こりません。ただし、コードはバックエンドで正常に動作し、追加したいコードは正常に追加されます。
ただし、 async : false を設定すると、コードが機能し、ページにアラートが表示されますが、ブラウザは本当に避けたい厄介な「ロックダウン」を取得します。
それで、ここで何が起こっているのか、誰にも分かりますか?
PS.: このページには他に 2 つの Facebook 要素、コメントとアクティビティ フィードがあります。わかりませんが、アクティビティフィードがこれに関係している可能性があるという印象を受けました...