4

现在我这样做了。

var form=document.createElement('form');
form.setAttribute('method', 'get');
form.setAttribute('action', 'url');
hidden=document.createElement('input');
hidden.setAttribute('type', 'hidden');
hidden.setAttribute('name', 'name');
hidden.setAttribute('value', 'value');
form.appendChild(hidden);
form.submit();

但我想节省创建 DOM 的成本

是否可以在没有 DOM 的情况下在 javascript 中提交发布请求?

4

2 回答 2

3

是的。

document.forms[0].submit()

提交页面上的第一个表单。这是以“非ajax”方式提交表单的典型方式。但是“非 ajax”一词在您的问题中具有误导性,因此“POST”-verb 是一个简单的 http-verb。使用“ajax”方式或“非ajax”方式没有区别。人为造成的差异是:“application/x-www.formurlencoded”是浏览器的首选格式,或者是“application/json”,因为您正在使用“ajax”。

PS:很难回答你的问题。当然,您可以避免动态创建表单元素;但是无论如何您都必须使用表单元素来进行非ajaxy提交。

于 2013-06-15T20:11:31.747 回答
1

我相信你实际上不会以你的方式做这件事。编辑 DOM 的最大问题实际上是添加到文档中,因为它需要重新渲染和其他东西。

于 2013-06-15T20:11:18.807 回答