【问题标题】:Can't reach AJAX success event无法到达 AJAX 成功事件
【发布时间】:2021-08-19 09:51:49
【问题描述】:

无法通过任何可见错误到达 AJAX 成功事件(错误事件也不会触发)。我正在尝试将数据加载到 <div id="list"></div> 块。打开页面后,控制台中只有一条消息:beforeSend,并且没有关于成功或错误事件的信息。如何触发成功事件并填充此块?

views.py:

def load_api(request):
    return render(request, 'bboard/api_rubrics.html')

@api_view(['GET'])
def get_api_rubrics(request):
    if request.method == 'GET':
        rubrics = Rubric.objects.all()
        serializer = RubricSerializer(rubrics, many=True)
        return Response(serializer.data)

urls.py:

urlpatterns = [
    path('all_api_rubrics/', load_api),
    path('all_api_rubrics/api/rubrics/', get_api_rubrics),
    ]

serializers.py:

class RubricSerializer(serializers.ModelSerializer):

    class Meta:
        model = Rubric
        fields = ('id', 'name', 'order')

models.py:

class Rubric(models.Model):
    name = models.CharField(max_length=20, db_index=True,
        verbose_name='Name')
    order = models.IntegerField(default=0, db_index=True)

    def __str__(self):
        return self.name


    class Meta:
        verbose_name_plural = 'Rubrics'
        verbose_name = 'Rubric'
        ordering = ['order', 'name']

api_rubrics.html:

{% load static %}
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <title>List of rubrics</title>
    </head>

    <body>
        <div id="list"></div>
    </body>
    <script src="{% static 'bboard/rubrics1.js' %}"></script>
</html>

rubrics1.js:

window.onload = function() {
    $.ajax({
        method: 'GET',
        url: 'api/rubrics',
        beforeSend: function() {
            console.log('beforeSend');
        },
        succsess: function(result) {
            update_table(result);
            console.log('after send');
        },
        error: function() {
            console.log('error');
        }
    });
}

function update_table(data) {
    console.log('inside update_table');
    var list = document.getElementById('list');
    var jsonData = JSON.parse(data);
    var s = '<ul>';
    for (i = 0; i < jsonData.length; i++) {
        s += '<li>' + jsonData[i].name + '</li>';
    }
    s += '</ul>'
    list.innerHTML = s;
}

【问题讨论】:

    标签: python jquery django ajax django-rest-framework


    【解决方案1】:

    我认为成功的拼写可能是错误的。你能用正确的拼写检查一下吗?

    success: function(result) {
               }
    

    【讨论】:

    • 天哪,我花了将近一天的时间来了解错误可能出在哪里...非常感谢!现在我得到了错误事件并成功纠正了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2010-12-30
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多