gpt4 book ai didi

javascript - 如何使用 JS fetch API 发布表单数据和上传文件

转载 作者:行者123 更新时间:2023-12-02 16:43:13 25 4
gpt4 key购买 nike

我正在尝试使用 JS 获取 API 发布表单数据,我也成功发送数据并获得响应,但在上传文件时出错我的文件没有上传,也没有将存储的文件名存入数据库。

<form id="signup">
<label for="myName">Send me your name:</label>
<input type="text" id="myName" name="name" value="abc">
<br>
<label for="userId">your id:</label>
<input type="text" id="userId" name="id" value="123">
<br>
<label for="pic">your photo:</label>
<input id="profile" name="profile" id="profile" type="file">
<br>
<input id="postSubmit" type="submit" value="Send Me!">
</form>

和javascript代码

const thisForm = document.getElementById('signup');
const profile = document.getElementById('profile');
thisForm.addEventListener('submit', async function (e) {
e.preventDefault();
const formData = new FormData(thisForm).entries()
formdata.append("profile",profile.files[0]);
const response = await fetch('<?php echo base_url() . 'api/get_subscription' ?>', {
method: 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
body: JSON.stringify(Object.fromEntries(formData))
});

const result = await response.json();
console.log(result);

最佳答案

无需转换为 JSON,也无需在 FormData 上使用 entries()。还要检查拼写,您写的 formdataformData 不同。

const thisForm = document.getElementById('signup');
var formData = new FormData(thisForm);
const profile = document.getElementById('profile');
formData.append("profile", profile.files[0]);
const response = await fetch('<?php echo base_url() . 'api/get_subscription' ?>', {
method: 'POST',
headers: { 'Content-Type': 'multipart/form-data' },
body: formData
});

关于javascript - 如何使用 JS fetch API 发布表单数据和上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61137025/

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