【发布时间】:2014-09-24 15:50:10
【问题描述】:
昨晚我通过 AJAX(特别是 $.post)向我的服务器发送了一些数据,当时我遇到了 JavaScript 数组需要“字符串化”并在发送之前作为字段应用于对象的问题。那就是:
$.post("/myUrl/", {"myKey": json.stringify(myArray)}, ... );
如果我不执行stringify,POST 的格式会在到达 Django 时搞砸。
当对象可以按原样发送时,为什么需要对请求进行字符串化?或者,这是否在使用的后端有很大差异?
【问题讨论】:
-
对象没有“按原样”发送。 jQuery 对其进行了一些处理以将其转换为 URL 键/值:
http://this.url?myKey=stringifiedArray。使用对象是因为它们是一种易于操作的数据结构。 -
啊,有趣。所以 jQuery 只是没有对数组做同样的“东西”——或者说它对待它们的方式不同?
-
啊……这可以解释为什么
request.POST被分解成list[index]位;它正在尝试从数组中创建唯一的键/值对!对吗? -
jQuery 的 post 方法接受键/值对的数据对象(或字符串 - 见下文)。
标签: javascript jquery django post request