gpt4 book ai didi

javascript - 多部分/表单数据可以用 javascript 发送吗?

转载 作者:可可西里 更新时间:2023-11-01 13:50:25 26 4
gpt4 key购买 nike

我正在使用这种形式通过 POST 发送文件以及文本“名称”:

<form enctype="multipart/form-data" action="https://site[DOT]net/upload" method="post">
<input id="name" type="text" />
<input id="data" type="file" />
<button type="submit" name="submit" />
</form>

我想使用 javascript 执行同样的操作。另外我不想被重定向。我想留在 html 页面上,只显示一个弹出窗口“上传完成”。我怎样才能在 javascript(没有 jquery)中做到这一点?

编辑:

我试过这段代码,但 POST 不工作:

<script>
function uploader {
var formData = new FormData();
formData.append("name", "Smith");
formData.append("data", fileInputElement.files[0]);
var request = new XMLHttpRequest();

request.open("POST", "https://site[DOT]net/upload");
request.send(formData);
}
</script>

<form>
<input id="name" type="text" />
<input id="data" type="file" />
<button type="submit" name="submit" />
<button onclick="uploader()">Click</button>
</form>

最佳答案

如果有人想用新的 fetch 而不是 xhr 来做这件事,这是等价的。另见:How do I POST with multipart form data using fetch?

var form = document.getElementById('formid');

form.onsubmit = async (e) => {
e.preventDefault();
const form = e.currentTarget;
const url = form.action;

try {
const formData = new FormData(form);
const response = await fetch(url, {
method: 'POST',
body: formData
});

console.log(response);
} catch (error) {
console.error(error);
}

}
<form id="formid" enctype="multipart/form-data" action="#" method="post">
<input id="name" type="text" />
<input id="data" type="file" />
<button type="submit" name="submit">Submint</button>
</form>

关于javascript - 多部分/表单数据可以用 javascript 发送吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com