无法到达 AJAX 成功事件

Posted

技术标签:

【中文标题】无法到达 AJAX 成功事件【英文标题】:Can't reach AJAX success event 【发布时间】: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;

【问题讨论】:

【参考方案1】:

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

success: function(result) 
           

【讨论】:

天哪,我花了将近一天的时间来了解错误可能出在哪里...非常感谢!现在我得到了错误事件并成功纠正了它。

以上是关于无法到达 AJAX 成功事件的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 无法获得成功或错误

Django 视图无法在 ajax 成功时返回 json?

为什么ajax加载出来的html,无法用选择器绑定事件?

关于AJAX异步加载节点无法触发点击事件问题的解决方式

解决jQuery ajax动态新增节点无法触发点击事件的问题

AJAX 成功无法将数据填充到表格 HTML