【问题标题】:How to pass a list value to a webapp2 backend via $.post?如何通过 $.post 将列表值传递给 webapp2 后端?
【发布时间】:2016-03-06 19:06:01
【问题描述】:

在我的咖啡脚本前端,我尝试将值列表传递给后端

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]

【问题讨论】:

    标签: google-app-engine coffeescript webapp2


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      因此你应该使用类似下面的 sn-p 的东西。您可以找到更多详细信息here

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-07-13
        • 1970-01-01
        • 2023-01-18
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 2021-02-12
        • 2012-03-08
        相关资源
        最近更新 更多