现在我以这种方式做到了。
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中提交帖子请求?
答案 0 :(得分:3)
是。
document.forms[0].submit()
在页面上提交第一个表单。这是以“非ajax”方式提交表单的典型方式。但是“非ajax”这个词在你的问题中会产生误导,因此“POST”-verb是一个简单的http-verb。使用“ajax”-way或“non-ajax”方式没有区别。可以做出的人为差异是:“application / x-www.formurlencoded”是浏览器或“application / json”的首选格式,因为您使用“ajax”进行操作。
P.S。:很难回答你的问题。当然,你可以避免动态创建表单元素;但是你必须使用表单元素来进行非ajaxy提交。
答案 1 :(得分:1)
我相信你实际上并没有像你那样做得很好。编辑DOM的主要问题实际上是添加到文档,因为它需要重新渲染和填充。