我的代码:
fetch("api/xxx", {
body: new FormData(document.getElementById("form")),
headers: {
"Content-Type": "application/x-www-form-urlencoded",
// "Content-Type": "multipart/form-data",
},
method: "post",
}
我试图使用提取API发布表单,它发送的正文如下:
-----------------------------114782935826962
Content-Disposition: form-data; name="email"
test@example.com
-----------------------------114782935826962
Content-Disposition: form-data; name="password"
pw
-----------------------------114782935826962--
(我不知道为什么每次发送时边界数字都会更改…)
我希望它使用“ Content-Type”:“ application / x-www-form-
urlencoded”发送数据,我该怎么办?或者,如果我只需要处理它,如何在控制器中解码数据?
向谁回答我的问题,我知道我可以做到:
fetch("api/xxx", {
body: "email=test@example.com&password=pw",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
method: "post",
}
我想要的是类似jQuery中的$(“#form”)。serialize()(不使用jQuery)或在控制器中解码mulitpart / form-
data的方法。谢谢您的回答。
要引用(强调我的)MDNFormData
:
该
FormData
接口提供了一种轻松构造一组代表表单字段及其值的键/值对的XMLHttpRequest.send()
方法,然后可以使用该方法轻松发送该键/值对。
如果编码类型设置为,则使用与表单使用的格式相同的格式"multipart/form-data"
。
因此,使用时FormData
您将自己锁定在multipart/form-data
。无法将FormData
对象作为正文发送并且 不
发送multipart/form-data
格式的数据。
如果要发送数据,则application/x-www-form- urlencoded
必须将正文指定为URL编码的字符串,或者传递一个URLSearchParams
对象。不幸的是,后者不能直接从form
元素初始化。如果您不想自己遍历表单元素( 可以
使用进行迭代HTMLFormElement.elements
),则还可以URLSearchParams
从FormData
对象创建一个对象:
const data = new URLSearchParams();
for (const pair of new FormData(formElement)) {
data.append(pair[0], pair[1]);
}
fetch(url, {
method: 'post',
body: data,
})
.then(…);
请注意,您无需自己指定Content-Type
标题。
正如僧侣时代在注释中指出的那样,您还可以直接创建URLSearchParams
和传递FormData
对象,而不是将值附加到循环中:
const data = new URLSearchParams(new FormData(formElement));
尽管它在浏览器中仍具有一些实验性支持,所以请确保在使用前对其进行正确测试。
问题内容: 我想将以下(工作)curl代码段转换为RestTemplate调用: 如何正确传递email参数?以下代码导致404 Not Found响应: 我试图在PostMan中制定正确的调用,并且可以通过在主体中将email参数指定为“ form- data”参数来使其正常工作。在RestTemplate中实现此功能的正确方法是什么? 问题答案: POST方法应沿着HTTP请求对象发送。并且该
我想将以下(工作的)curl片段转换为RestTemplate调用: 如何正确传递email参数?以下代码将导致404 Not Found响应: 我尝试在PostMan中制定正确的调用,通过在正文中将email参数指定为“form-data”参数,可以使其正常工作。在RESTTemplate中实现此功能的正确方法是什么?
我正在创建一个fetchBill函数。分配https://randomapi.com/api/006b08a801d82d0c9824dcfdfdfa3b3c到一个api变量。它使用浏览器的fetch函数向api发出HTTP请求。它在一个函数中使用箭头函数。然后调用fetch函数,并在将其转换为JSON后返回响应。使用另一个。然后调用第一个函数,该函数将JSON数据传递给displayCartTo
问题内容: 我有以下代码,但是当我从页面重定向提交时。我希望能够使用jquery / ajax向其发布内容,以便提交时页面不会刷新。有人可以给我看一个jsfiddle演示吗? 问题答案: 看一下jQuery :
使用注释: 我如何定义一个,它可以
问题内容: 我已经检查了很多有关django AJAX表单的教程,但是每个教程都告诉您一种实现方法,它们都不是简单的,而且由于我从未使用过AJAX,所以我有点困惑。 我有一个名为“ note”的模型,它的模型形式,并且在模板内,我需要每次note元素发送stop()信号(来自jQuery Sortables)时django更新对象。 我当前的代码: views.py JavaScript: 当前代