如何在Django中解决AJAX调用的404错误

时间:2017-04-03 06:41:28

标签: jquery ajax django

我在Django的AJAX调用中遇到404错误

这是我的代码: jQuery脚本:

array_filter(get_included_files(), function($item) {
    return strpos($item, '/path/to/files/') === 0;                                                            
});

我试图获取数据(在json中)形成这个函数:

$('#cluster-id').change( function(){
        $.ajax({
            url: '/ajax_demo/',
            type: 'get',
            dataType: 'json',
            complete: function( jqXHR, textStatus ){
                console.log("complete " + textStatus);
            },
            success: function( data, jqXHR, textStatus ){
                console.log("success " + data);
            },
            error: function(jqXHR, textStatus, errorThrown ){

                console.log("error: " + errorThrown );
            }
        });

我也正确设置了网址:

from django.http import JsonResponse
def ajax_demo( request ):
    cluster = request.GET.get('cluster', None)
    data = {
        'name' : 'abc'
    }
return JsonResponse(data)

我是AJAX和jQuery的新手,我不知道这是什么问题。

根网址
urlpatterns = [
    url( r'^$', views.main_page_demo, name = 'main_page_demo' ),
    url( r'^demo/', views.ajax_demo, name = 'ajax_demo'),

    ]

1 个答案:

答案 0 :(得分:0)

这里有几个明显的错误。

首先,您要发布到" / ajax_demo /",但您没有将其作为网址发布;只有" / demo /"。您确实更改了URL模式或要发布到的URL。

其次,您错误地包含了应用模式;不得使用终端" $"与包括。它应该是:

url(r'^$', include( 'app.urls', namespace = "mainPage")),

第三,您没有在请求中包含任何数据。您需要一个data密钥:

$。AJAX({             url:' / demo /',             输入:' get',             数据:{" cluster":" value"}             ...