Django中的我的AJAX方法似乎没有工作,我无法确定它在哪里坏了,因为我实际上没有在Django调试日志中发现任何错误,它返回了200状态码。为什么我的AJAX发布请求无法正常工作?
模板
<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>
或者这个错误是在实际的jQuery AJAX部分? Chrome的开发者控制台是给我下面的错误:
Uncaught ReferenceError: benjamin is not defined(index):223 (anonymous function)
我不知道这意味着什么确切,但它说,本杰明,这个事实意味着该名称正确分配。
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请求检测”,以确认是否甚至被调用的方法,但是不打印到终端时,我正在测试这个,我不知道为什么。
如果AJAX试图显示警报,你为什么要在视图中执行重定向? 在用户名值中使用引号以使JavaScript检测值而不是变量。 – 2015-01-15 20:24:13
噢好吧,我要去掉警报。我想要的只是重定向。 – stephan 2015-01-15 21:21:14
如果你只想重定向,你应该返回一个HttpResponse和你想要重定向到的URL,并在AJAX成功呼叫中重定向 – 2015-01-15 21:35:46