首页 > 解决方案 > 使用 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 不是函数”,我错了吗?

标签: javascriptpostform-data

解决方案


submit()是表单上可用的方法;FormData对象不是形式。

对象旨在收集数据(并且可以通过将FormData表单对象传递给它来进行初始化)以传递给fetchXMLHttpRequest用于发出 Ajax 请求。它没有任何内置功能来发出 HTTP 请求或触发导航到新页面。

您可以使用 Ajax 发出请求,但这无法处理导航到新页面。

为此,最容易使用真实<form>的。


推荐阅读