Django的;在Firefox控制台

时间:2018-03-16 15:11:03

标签: python jquery json ajax django

Urls.py:

from .views import get_data

app_name = 'javascript'
urlpatterns = [
    path('', views.index, name='index'),
    path('api/data', get_data, name='api-data'),

]

Views.py:

from django.http import JsonResponse

def get_data(request):                
    dictionary = {'Name':'John'}
    return JsonResponse(dictionary)

def index(request):
    return render(request, 'javascript/index.html')

的index.html:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$.ajax({
    method: "GET",
    url: "/api/data/",
    success: function(dictionary){
        console.log(dictionary)
    },
    error: function(error_data){
        console.log("errorrr")
        console.log(error_data)
    }
})
</script>

使用AJAX,我想在index.html加载时打印字典内容。但是,由于某种原因,Ajax调用失败。 Console.log输出是:

errorrr
127.0.0.1:8000:30:3
Object { readyState: 4, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state(), always: always(), catch: catch(), … }

我的jQuery是如何编写的?

1 个答案:

答案 0 :(得分:0)

将urls.py更改为:

from .views import get_data

app_name = 'javascript'
urlpatterns = [
    path('', views.index, name='index'),
    path('api/data[/]?$', get_data, name='api-data'),

]

您的AJAX通话是'api/data/',与您拥有的path('api/data', get_data, name='api-data')不符。现在使用'api/data[/]?$',它将与最后一个/匹配。