Я хочу вызывать функцию ajax 1 раз всякий раз, когда кто-то создает комментарий в плагине комментариев на Facebook.Но сервер дважды вызывает функцию ajax.
Я уже искал день, но ничто не может мне помочь.
вот мой код
window.fbAsyncInit = function fb() {
FB.Event.subscribe('comment.create', function () {
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
url: 'http://127.0.0.1:8000/ajax/comment/',
type: "POST",
data: {
'id': $('#fbcomment').attr('data')
},
dataType: 'json',
success: () => {
}
});
});
};
Вот мой Facebook JS (я поставил перед <body>
):
<div id="fb-root"></div>
<script>(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s);
js.id = id;
js.src = 'https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v3.2';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
моя urls.py
ссылка:
re_path(r'^ajax/comment/$', views.Action.comment, name='comment'),
вот вид:
def comment(request):
id = int(request.POST.get('id'))
film = get_object_or_404(Film, pk=id)
film.comment = film.comment + 1
film.save()
return JsonResponse(id, safe=False)
Пожалуйста, помогите мне.извините за мой плохой английский.
Это то, что я получаю