如何通过ajax以适当的形式发送数据

时间:2014-09-02 09:33:04

标签: jquery ajax django post

我想通过ajax调用将一些数据发送到我的服务器。在后端我运行一个django实例。 我想发送的数据如下:

  1. 由xy坐标和名称
  2. 组成的某些点
  3. 我想要做的分析类型
  4. Csrfmiddlewaretoken
  5. 我的观点是这样一个对象:

    data = {name:{x:value, y:value}, name2:{x:value, y:value}} etc 
    

    因此是对象的对象

    我的分析是一个字符串,我的csrfmiddleware标记取自django使用模板标记生成的隐藏输入字段。

    在我的ajax调用中,我的数据参数如下所示:

    data:{'points':data,
          'analysis': $('select').val(),
          'csrfmiddlewaretoken': $('input [type="hidden"]').val()
         }
    

    我希望在我的后端能够执行以下操作

    points = request.POST['points']
    

    然后能够获得xy坐标如下

    points['name']['x'] etc
    

    但是当我以上述方式发送数据时,我的request.POST字典有以下项目

    {u'points['name']['x']:[u'450'],....} etc
    

    虽然我希望它像

    {points:{name:{x:value, y:value}}, {name2:{x:value, y:value:}}...}
    

    我如何以我想要的方式发送要发送的数据?

1 个答案:

答案 0 :(得分:-1)

我通过使用点

对对象进行字符串化来解决这个问题
data:{'points':JSON.stringify(data),
  'analysis': $('select').val(),
  'csrfmiddlewaretoken': $('input [type="hidden"]').val()
 }

然后在我的后端

data = json.loads(request.POST['points'])

瞧,数据是python词典