2011-03-28 69 views
3

我目前能够使用jQuery的post方法通过myurl检索POST数据

jQuery.post("/myurl", {'value1':value1, 'value2':value2, 
         'csrftoken': '{{ csrf_token }}'}, 
      function(data) { 
         alert("Data Loaded: " + data); 
          }); 

然而指出一个观点,我不知道该如何检索在视图内张贴数据而不使用表格:

def save_user_graph(request): 
     if request.method == 'POST': 
      return HttpResponse(request.POST.get('value1'),status=201) 

返回None

+0

这应该像你所描述的那样工作。什么返回None?你的HTTP响应,或'request.POST.get('value1')'?你传递了什么值?尝试使用pdb找出您正在接收的值。 – Bjorn 2011-03-28 10:51:59

+0

这是非常不可读的代码,但这个想法是正确的。你有没有尝试过把它分开,并放入一些日志记录,以便你可以看到'value1'的值是什么? – 2011-03-28 10:52:47

+0

我在jquery文章之前放了一个alert(value1);它有正确的值。它不是返回None的http响应,因为我尝试了正确传递的其他变量。 – Mermoz 2011-03-28 11:45:02

回答

4

如果save_user_graph正在返回None,那么request.method不是POST。如果save_user_graph正在返回一个HttpResponse,其中包含单词'None',那么value1未被正确发送。你能澄清一下这是什么情况吗?

如果您有Chrome,请尝试导航到打开开发者工具栏的页面。您可以转到“控制台”选项卡并查看AJAX请求并查看与之一起发送的数据,以确保数据正确发送。同样,如果你有firefox和firebug,你可以去页面看ajax请求并检查post参数。

假设JavaScript可以工作,您需要在save_user_graph中记录request.POST。在一个捏,你可以只print request.POST,并假设你正在使用django开发服务器,输出将打印在开发服务器输出。

我们需要更多的调试信息,然后才能给出更好的答案。 :)