【问题标题】:JavaScript POST non-API request with repeated keys in payloadJavaScript POST 非 API 请求,有效载荷中有重复的键
【发布时间】:2022-01-08 22:00:11
【问题描述】:

Javascript。 POST 请求。它不是 API 请求(axios 或 fetch),而是旧的经典请求。

我需要像...&_selected_action=5&_selected_action=10 这样的有效负载。 所以我想我不能在这里使用表单提交技术。 一次出现...&_selected_action=5 我就能做到(表单提交为 Aquajet @pass post data with window.location.href),一切正常。 对于重复值,我可以手动或URLSearchParams().toString() 创建字符串,但无法发送。

有什么想法吗?

更多细节。我需要在 Django+Vue 应用程序中创建这个请求,它部分替换了旧的 Django Admin。 ListView 已使用 Vue 替换,现在我想重用 Django Admin 使用上述格式的 Post 请求的操作。因此,对于列表中的单个选定行,我能够做到这一点,但是对于 2+ 个选定行,我找不到一个好方法。

【问题讨论】:

    标签: javascript django vue.js post request


    【解决方案1】:

    在我上面的问题中,我不是真的不能使用表单提交方法。当然,html 表单可以有更多具有相同name= 的字段,如果是这样,它的提交就会完全根据需要生成一个 post 请求。

    但是当我以编程方式创建表单时,我无法从字典中填充它,因为字典不能有重复的键。

    所以我在这里修改了 Aquajet 提出的功能pass post data with window.location.href 并检查是否params[key].constructor !== Array。我将非数组值转换为数组(带有单个元素),然后循环浏览这些数组。这允许我在参数(在这种情况下我将它们作为数组输入)和表单中具有重复值。

    所以,这是我的问题的答案。然而,为这样的目标创建大量隐藏输入有点奇怪。因此,如果有更好的方法来创建 POST 请求,我很感兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 2021-11-15
      • 2023-01-05
      • 2018-04-21
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多