Jquery Ajax调用不返回数据Django

Jquery Ajax调用不返回数据Django,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我想编写一个简单的ajax方法,以便在文档准备就绪时启动。我有以下JS: $(document).ready(function() { $.ajax({ type:'GET', url: '/get_alert', sucess: function(data){ data = JSON.parse(data); alert("Hi"); console.log(

我想编写一个简单的
ajax
方法,以便在
文档准备就绪时启动。我有以下
JS

$(document).ready(function()
    {
    $.ajax({
        type:'GET',
        url: '/get_alert',
        sucess: function(data){
            data = JSON.parse(data);
            alert("Hi");
            console.log(data);
            $('#notification_symbol').css('display','inline');
        },
        error: function(){
            console.log("Hello");
        }
    });
 }
我可以确认url正在工作,并且正在
ready
上进行呼叫。但是,它不会返回任何数据。这是我在
views.py中的函数:

def get_alert(request):
    alert = False
    events = EventInvite.objects.filter(Invitee_id=request.user.id, Status= InvitationStatus.objects.filter(Status='Pending')[0]).order_by('-date')
    for event in events:
        if event.seen:
            alert = True
    dict = {
        'alert':alert,
    }
    print(dict) # Tells me the call is being made on ready...
    return JsonResponse(dict)

有什么想法吗?

您有CSRF令牌代码吗?这通常是我遇到ajax-y问题时的问题。我不确定您使用的是什么django(我大约是~1.8),但下面的代码通常会为我清除这个问题。只需在html页面中的脚本标记中添加此内容。当您进行ajax调用时,这会自动发布CSRF内容

function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
     var cookies = document.cookie.split(';');
    for (var i = 0; i < cookies.length; i++) {
        var cookie = jQuery.trim(cookies[i]);
        // Does this cookie string begin with the name we want?
        if (cookie.substring(0, name.length + 1) == (name + '=')) {
            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
            break;
        }
    }
}
return cookieValue;
}


var csrftoken = getCookie('csrftoken');
   function csrfSafeMethod(method) {
   // these HTTP methods do not require CSRF protection
  return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}


$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
        xhr.setRequestHeader("X-CSRFToken", csrftoken);
      }
  }
});
函数getCookie(名称){ var-cookieValue=null; if(document.cookie&&document.cookie!=''){ var cookies=document.cookie.split(“;”); 对于(变量i=0;i

包含解释这些代码片段的django文档参考页。

您有CSRF令牌代码吗?这通常是我遇到ajax-y问题时的问题。我不确定您使用的是什么django(我大约是~1.8),但下面的代码通常会为我清除这个问题。只需在html页面中的脚本标记中添加此内容。当您进行ajax调用时,这会自动发布CSRF内容

function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
     var cookies = document.cookie.split(';');
    for (var i = 0; i < cookies.length; i++) {
        var cookie = jQuery.trim(cookies[i]);
        // Does this cookie string begin with the name we want?
        if (cookie.substring(0, name.length + 1) == (name + '=')) {
            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
            break;
        }
    }
}
return cookieValue;
}


var csrftoken = getCookie('csrftoken');
   function csrfSafeMethod(method) {
   // these HTTP methods do not require CSRF protection
  return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}


$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
        xhr.setRequestHeader("X-CSRFToken", csrftoken);
      }
  }
});
函数getCookie(名称){ var-cookieValue=null; if(document.cookie&&document.cookie!=''){ var cookies=document.cookie.split(“;”); 对于(变量i=0;i
包含解释这些代码片段的django文档参考页

注意到
success
拼写错误


注意到
success
拼错了。

谢谢你的提示,但是我拼错了
success
:(哦!当你说你的函数被正确调用时,我应该意识到情况并非如此。也许今天早上我们都缺少咖啡;)谢谢你的提示,但我拼错了
success
:(哦!当你说你的函数被正确调用时,我应该意识到情况并非如此。也许今天早上我们都缺少咖啡;)