未来的互联网搜索者:
对于新的浏览器(截至 2018 年:Chrome、Firefox、Safari、Opera、Edge 和大多数移动浏览器,但不是 IE),fetch是一个标准 API,用于简化异步网络调用(我们过去需要XMLHttpRequest或 jQuery 的$.ajax)。
这是一个传统的形式:
<form id="myFormId" action="/api/process/form" method="post">
    <!-- form fields here -->
    <button type="submit">SubmitAction</button>
</form>
如果将上述表单交给您(或者您创建它是因为它是语义 html),那么您可以将fetch代码包装在事件侦听器中,如下所示:
document.forms['myFormId'].addEventListener('submit', (event) => {
    event.preventDefault();
    // TODO do something here to show user that form is being submitted
    fetch(event.target.action, {
        method: 'POST',
        body: new URLSearchParams(new FormData(event.target)) // event.target is the form
    }).then((resp) => {
        return resp.json(); // or resp.text() or whatever the server sends
    }).then((body) => {
        // TODO handle body
    }).catch((error) => {
        // TODO handle error
    });
});
(或者,如果像原始海报一样,您想在没有提交事件的情况下手动调用它,只需将fetch代码放在那里并传递对form元素的引用,而不是使用event.target。)
文档:
获取:https :
 //developer.mozilla.org/en-US/docs/Web/API/Fetch_API
其他:https :
 //developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript 
2018年那个页面没有提到fetch(还)。但它提到不推荐使用 target="myIFrame" 技巧。它还有一个用于“提交”事件的 form.addEventListener 示例。