Jquery 为什么我的AJAX post请求不能正常工作?

Jquery 为什么我的AJAX post请求不能正常工作?,jquery,ajax,django,Jquery,Ajax,Django,我在Django中的AJAX方法似乎不起作用,我很难确定它在哪里被破坏,因为我在Django调试日志中没有收到任何错误,它返回了一个200状态代码 模板 <script type="text/javascript"> var my_app = { username: {{ request.user.username }} }; </script> <script> $(document).ready(function() {

我在Django中的AJAX方法似乎不起作用,我很难确定它在哪里被破坏,因为我在Django调试日志中没有收到任何错误,它返回了一个200状态代码

模板

<script type="text/javascript">
    var my_app = {
      username: {{ request.user.username }}  
    };
</script>
<script>
 $(document).ready(function() {
    $(".delete_button").click(function() {
        var id = $(this).attr('id');
        $.ajax({
            type: "POST",
            url: "/accounts/" + my_app.username + "/profile_listview",
            data: { entryname:id },
            success: function(response){
                alert(response.success);
            }
        });
        return false;
    });
});
</script>
我不知道这到底是什么意思,但上面写的是benjamin,这意味着名字被正确地分配了

VIEWS.PY

latest_entries=Entry.objects.order_by('-pub_date')[:16]

@login_required
def delete_object(request):
   if request.is_ajax():
      print "ajax request detected"
      object_name = request.POST.get('entryname')
      Entry.objects.get(id=object_name).delete()
      return HttpResponseRedirect('/storefront/')

我应该提到的另一件事是,我添加了打印“检测到ajax请求”以确认是否调用了该方法,但在我测试该方法时,没有打印到终端,我不确定原因。

您需要将用户名加引号:

var my_app = {
    username: '{{ request.user.username }}'
};

“Benjamin未定义”错误是因为JavaScript认为您引用的是该名称的变量,而不是定义字符串值。

您认为这也是为什么我的视图方法中的“检测到ajax请求”未打印的原因吗?如果ajax试图显示警报,您为什么要尝试在视图中重定向?在用户名值中使用引号使JavaScript检测一个值而不是一个变量。哦,好的,我将删除该警报。我想要的只是重定向。如果你只想要重定向,你应该返回一个带有你想要重定向到的URL的HttpResponse,并在AJAX成功调用中进行重定向。为什么我不能在视图中完成所有这些?
var my_app = {
    username: '{{ request.user.username }}'
};