javascript - 使用 POST 重定向将 FormData 对象作为表单提交
问题描述
我正在使用 FormData 对象(因此没有真正的 HTML 表单)纯粹在 JS 中制作一个表单,我想使用 POST 方法将其提交到另一个带有重定向的 URL(与我编译表单并按下提交按钮的方式相同)被重定向到操作 URL)。
我试过这段代码:
function sendFileToDetailsStep(fileToUpload) {
var formData = new FormData();
formData.append("file", fileToUpload);
formData.append("csrfmiddlewaretoken", "{{ csrf_token() }}");
formData.set("method", "POST");
formData.set("action", "{{ route('quotation.details') }}");
formData.submit();
}
但是我收到一个错误“未捕获(承诺)TypeError:formData.submit 不是函数”,我错了吗?
解决方案
submit()
是表单上可用的方法;FormData
对象不是形式。
对象旨在收集数据(并且可以通过将FormData
表单对象传递给它来进行初始化)以传递给fetch
或XMLHttpRequest
用于发出 Ajax 请求。它没有任何内置功能来发出 HTTP 请求或触发导航到新页面。
您可以使用 Ajax 发出请求,但这无法处理导航到新页面。
为此,最容易使用真实<form>
的。
推荐阅读
- sql - 除了“表变量+列名=”,还有什么方法可以简化它吗?
- javascript - discord.js v12 Userinfo 命令在未提及用户或给出用户 ID 时有效
- ios - 如何强制 iCloud 在全新安装/首次启动时同步应用程序的数据?
- nginx - 基于http_referrer的Nginx代理
- java - spring websocket 无法建立连接
- google-apps-script - 我需要使用 Google Apps 脚本反转选定的幻灯片顺序
- javascript - Firestore 验证日期(参数“秒”的值必须在 [-62135596800, 253402300799] 范围内)
- python - 查看 PySpark 脚本的 Glue 作业输出的最佳方式
- javascript - 使用 javascript 读取 Excel 文件并将其存储在数组中
- powershell - 获取 SharePoint Online 术语集并在 PowerShell 中不存在时创建术语