这是我的ajax调用:
<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:
url(r'user/task/delete/$',views.DeleteTaskView.as_view(),name='deletetask'),
如果我删除了Ajax调用,只需添加警报功能,那么它正常工作,意味着jQuery正在工作,仅AJAX呼叫就有一些问题。帮助!
编辑:我将URL函数更改为:
url : "{% url 'task:deletetask' %}",
现在,该项目已从数据库中删除,但在成功中,响应hide和警报功能不起作用。
- 确保JS重新加载。
- 尝试测试URL(使用完整链接(
- 打开Broswer并按F12〜>控制台并向我展示错误...服务器或客户端错误?
JsonResponse
可以 - 默认情况下 - 仅是数据的dict参数。
所以您应该有:
return JsonResponse({'text': 'Task Removed'})
如果您需要删除使用CSRF_Token在AJAX中传递post
方法的数据。
<script>
$(document).ready(function(){
$("#butt2").click(function(){
$.ajax({
url:'{% url 'task:deletetask' %}',
data:{'id':2 },
type:"POST",
headers: {
'X-CSRF-Token': {{csrf_token}}
},
success:function(text){
$("#task2").hide();
alert(text);
}});
});
});
</script>
from django.http import HttpResponse
from django.core import serializers
jsonObject = serializers.serialize('json', [{'text': 'Task Removed'}])
return HttpResponse(jsonObject)