为什么我使用 enctype='application/json' 但CONTENT_TYPE仍然是 application/x-www-form-urlencoded

why i use enctype='application/json' but CONTENT_TYPE still be application/x-www-form-urlencoded

提问人:cmdedj 提问时间:10/19/2023 更新时间:10/19/2023 访问量:18

问:

<form enctype='application/json' action="{% url 'xxx'  %}" method="post">
    {% csrf_token %}
    <input type='number' name='bottle-on-wall' value='1'>
    <input type='number' name='bottle-on-wall' value='2'>
    <input type='number' name='bottle-on-wall' value='3'>
    <button type="submit">send</button>
</form>

CONTENT_TYPE 'application/x-www-form-urlencoded'

如何将表单数据作为JSON发送到服务器

json django 表单 模板 帖子

评论

1赞 Nikita shrama 10/19/2023
也许这个链接会对你有所帮助。点击这里
1赞 jonrsharpe 10/19/2023
这不是有效选项之一,因此您得到无效的默认值;例如,阅读 developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/...
0赞 cmdedj 10/19/2023
@jonrsharpe所以我必须编写JS代码,使用AJAX将表单数据作为JSON发送?
0赞 jonrsharpe 10/19/2023
当然,您不能直接从 HTML 表单将其作为 JSON 发送。是否有其他选项(使用 JS,发送 JSON)取决于您的约束。

答:

0赞 Jeremy Fiel 10/19/2023 #1

multipart/form-data

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#enctype

<form enctype='multipart/form-data' action="{% url 'xxx'  %}" method="post">
    {% csrf_token %}
    <input type='number' name='bottle-on-wall' value='1'>
    <input type='number' name='bottle-on-wall' value='2'>
    <input type='number' name='bottle-on-wall' value='3'>
    <button type="submit">send</button>
</form>