【问题标题】:How to send data via ajax in a proper form如何以正确的形式通过 ajax 发送数据
【发布时间】:2014-09-02 09:33:03
【问题描述】:

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

  1. 一些点由它们的 xy 坐标加上一个名称组成
  2. 我想做的分析类型
  3. Csrfmiddlewaretoken

我的观点是这样的一个对象:

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:}}...}

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

【问题讨论】:

    标签: jquery ajax django post


    【解决方案1】:

    我通过用点对对象进行字符串化来解决它

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

    然后在我的后端

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

    瞧,data 是一个 python 字典

    【讨论】:

    • 为什么投反对票?不应该成为投票的理由吗?
    • 对不起...我没有足够的代表来反对投票。这个问题很真实。 @Apostolos
    • 我的错......不能收回......我向你道歉......虽然你的评论没有给我一个解决方案:)......我仍然希望有将投票作为本网站的一项功能时进行投票的原因
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多