2017-06-06 100 views
0

这是我的Ajax调用:Ajax调用在Django中不起作用?

<script> 
    $(document).ready(function(){ 
     $("#butt2").click(function(){ 
      $.ajax({ 
       url:'{% url 'task:deletetask' %}', 
       data:{'id':2 }, 
       type:"GET", 
       success:function(text){ 
        $("#task2").hide();    
        alert(text); 
      }}); 
     }); 
    }); 


</script> 

这是我的看法功能:

class DeleteTaskView(generic.View): 
    def get(self,request): 
     id = request.GET.get('id',None) 
     Task.objects.get(id=id).delete() 
     return JsonResponse("Task Removed") 

这是网址:

url(r'user/task/delete/$',views.DeleteTaskView.as_view(),name='deletetask'), 

如果我删除Ajax调用,并且只需添加alert函数,那么它正常工作,意味着jquery工作,只有ajax调用有问题。帮帮我 !

编辑:我更改URL功能:

url : "{% url 'task:deletetask' %}", 

目前该项目正从数据库中删除,但在成功响应隐藏和警报功能无法正常工作。

+0

您是否尝试打印ID进行,以确保该方法甚至被称为和ID被正确传递? – Soviut

回答

0
  1. 确保JS重新加载。
  2. 尝试测试网址(使用完整链接)
  3. 打开Broswer并按下F12〜> console并显示错误...服务器或客户端错误?
+0

它显示:500(内部服务器错误)。项目正在从数据库中删除,但成功功能现在正在工作 –

+0

您已完成调试吗? 5xx服务器端〜>检查服务器功能(打印一些文件)以发现问题,也许这个ID或你的方法不能很好地工作 –

+0

你也可以在CMD上看到服务器日志,确保你找到了错误! (可能是当你得到模型的对象) –

0

JsonResponse可以采取 - 默认情况下 - 只有数据的字典参数。

所以,你应该有:

return JsonResponse({'text': 'Task Removed'})