如何通过$ .post将列表值传递给webapp2后端?

时间:2016-03-06 19:06:02

标签: google-app-engine coffeescript webapp2

在我的coffeescript前端中,我尝试将值列表传递给后端

data = {
  id: [2, 3, 4]
}

$.post url, data

在Google应用引擎(python)后端的处理程序中,我读取了这样的值:

    id_value = self.request.get('id')

    LOG.info("%s", id_value)

它总是打印出'2'。

如何获取后端以获取列表[2,3,4]

2 个答案:

答案 0 :(得分:0)

默认情况下,

$.post以url编码格式发送数据,该格式以自己的方式处理嵌套结构。

您可能需要在发送之前使用JSON对数据进行编码,然后在服务器端对其进行解码 - 例如here

答案 1 :(得分:0)

  

请求对象提供了一个get()方法,该方法返回从查询和POST数据解析的参数的值。

     

如果参数在请求中出现多次,则默认为get()   返回第一个匹配项。获得所有出现的参数   这可能不止一次作为列表(可能是空的),给   get()参数allow_multiple = True。

因此你应该使用类似下面的代码片段。您可以找到更多详细信息here

id_value = self.request.get('id', allow_multiple=True)

如果您需要访问请求正文中编码的变量url(通常是使用application / x-www-form-urlencoded媒体类型提交的POST表单),您应该使用类似的内容。

id_value = self.request.POST.getall('id')