Попытка вызвать представление Django с помощью AJAX

Я хочу вызывать представление Django (упомянутое ниже) с помощью AJAX каждую секунду, чтобы показать все сообщения в комнате

Мой JQuery

<script   src="https://code.jquery.com/jquery-3.2.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>

Вот мой код JQuery (в консоли браузера я продолжаю получать ошибку, говорящую, что $.ajax не определен)

<script>
    $(document).ready(function(){
        setInterval(function(){
            $.ajax({
                type: 'GET',
                url : window.location.origin+"/room/{{room_name}}/"+username+"/",
                success: function(response){
                    console.log(JSON.stringify(response));
                },
                error: function(response){
                    alert(JSON.stringify(response))
                }
            });
        },1000);
        })
    </script>

Это мое представление Django

def room(request,room_name,current_user):
    # print("[PROMPT] current_user :"+current_user)
    try:
        all_images = Image.objects.all()
        all_users = Account.objects.all()
        room_obj = ChatRoom.objects.get(room_name=room_name)
        room_user_1 = room_obj.room_user_1
        room_user_2 = room_obj.room_user_2
        if room_user_1.username != current_user and room_user_2.username != current_user:
            return redirect('chat')
        room_messages = Message.objects.filter(room_name=room_obj)
        current_user = Account.objects.get(email=str(request.user))
        profile = Profile.objects.get(user=current_user)
        user_following = []
        friends = []
        for a in profile.user_has_follower.all():
            if a not in friends:
                friends.append(a)
        for b in profile.user_is_following.all():
            if b not in friends:
                friends.append(b)
        query = profile.user_is_following.all()
        for i in query:
            user_following.append(i)
        context={
            'username':current_user.username,
            'room_name':room_name,
            'room_user_1_username':str(room_user_1.username),
            'room_user_2_username':str(room_user_2.username),
            'room_messages':room_messages,
            'user_following':user_following,
            'friends':friends,
            'all_users':all_users,
            'all_images':all_images,
        }
        return render(request,"chat.html",context)
    except Exception as e:
        log_exception(request,e,view_name="room")
        return render(request,"error.html")

Это мой urlpattern для приведенного выше представления

urlpatterns = [
    path('room/<str:room_name>/<str:current_user>/',views.room,name='room'),
]

Пробовали ли вы добавить jquery перед ajax запросом?

Это должно выглядеть следующим образом;

<script   src="https://code.jquery.com/jquery-3.2.1.min.js"   integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="   crossorigin="anonymous"></script>
<script>
    $(document).ready(function(){
        setInterval(function(){
            $.ajax({
                type: 'GET',
                url : window.location.origin+"/room/{{room_name}}/"+username+"/",
                success: function(response){
                    console.log(JSON.stringify(response));
                },
                error: function(response){
                    alert(JSON.stringify(response))
                }
            });
        },1000);
        })
    </script>

Кроме того, url : window.location.origin+"/room/{{room_name}}/"+username+"/", теперь не нужен. Может также использоваться как url : "/room/{{room_name}}/"+username+"/",

Вернуться на верх