2013-01-05 30 views
1

我知道,例如:如何调试在Django Ajax请求

def home(request): 
    if request.method == 'POST': 
     k = 'p' % 1 
     return HttpResponse(simplejson.dumps(dict()), mimetype='application/javascript') 
    else: 
     k = 'p' % 1 
     return render_to_response('index.html',locals()); 

url(r'^$', 'app.home'), 

如果我用浏览器来访问主页,Django会调试页面返回给我,表明有错误在k = 'p' % 1

但是,如果我用$.ajax()来发个帖子这个观点,镀铬的控制台只显示POST http://(some url here):8000/ 500 (INTERNAL SERVER ERROR)

所以有调试第二种情况没有什么好的办法? 我不知道调试django,有没有人有更好的方式来调试django?

感谢

回答

1

看看sentry(以及相应的乌鸦)

(在Network标签应该能够向你展示的请求和相应的响应。我相信新的Django版本甚至给你一个如果请求是ajax,则更多裸栈版本的堆栈跟踪)

0

ajax中有error CallBack。它会发现实际的错误。

$.ajax({ 
     type: 'POST', 
     url: '{% url 'url_name_for_your_view_here' %}', 
     data: {'csrfmiddlewaretoken': '{{csrf_token}}'}, 
     dataType: "text", 
     success: function(response) { 
      //do something here if everything goes well 
     }, 
     error: function(rs, e) { 
      alert(rs.responseText); //throw actual error, just for debugging purpose 
      alert('Oops! something went worng..'); // alert user that something goes wrong 
     } 
    }); 
+1

如果他遇到500错误,他的应用程序很可能崩溃,并且ajax响应可能根本不会被发送 – darko