Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中创建非ajax post请求?_Javascript_Html - Fatal编程技术网

如何在javascript中创建非ajax post请求?

如何在javascript中创建非ajax post请求?,javascript,html,Javascript,Html,现在我是这样做的 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.setAt

现在我是这样做的

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提交post请求?

我相信,按照现在的方式,您实际上不会受到太大的性能影响。编辑DOM的大问题实际上是添加到文档中,因为它需要重新呈现和填充

是的

document.forms[0].submit()
提交页面上的第一个表单。这是以“非ajax”方式提交表单的典型方式。但是术语“非ajax”在您的问题中有误导性,因此“POST”动词是一个简单的http动词。使用“ajax”方式和“非ajax”方式没有区别。人为的区别是:“application/x-www.formurlencoded”是浏览器的首选格式,而“application/json”则是“ajax”


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

DOM这样的操作非常简单。运行时间:0ms(读:无关紧要):D虽然通常首选XHR,但这种方法有一些优点,例如返回“下载文件”或“通过IFrame上载文件”(对于XHR/XDR中不支持这种功能的浏览器)。您有什么问题吗?如果您担心操作DOM的性能影响;为什么不把表格藏起来呢。那么它已经在DOM中了?为什么要避免Ajax(
XMLHttpRequest
)?这将为您节省创建DOM元素的(低)成本”,并且使用“ajax”方式和“非ajax”方式没有区别。您可以使用
XMLHTTPRequest
或正常提交表单。“application/x-www.formurlencoded”是浏览器或“application/json”的首选格式,正如您使用“ajax”所做的那样。“通常通过ajax请求发送的数据也是formurlencoded,因为表单数据通常是这样编码的(相关:)。数据格式与您选择的传输方式没有多大关系。hm。但是从http的角度来看,XMLHTTPRequest和通常的“提交”之间的区别在哪里呢?据我所知,这篇文章是一篇文章,与它的技术起源无关。当然,您是对的,通过ajax发送的数据通常可以进行URL编码;所以我写的是“人工的”。当然,关于HTTP没有区别,但是关于JavaScript方面。但我知道你来自哪里。标题是“非ajax帖子”,当然没有这回事(正如你所说,帖子就是帖子)。我更关注“JavaScript”的观点。我想这就是我们看待这个问题的不同之处:)我来自于“down under”,所以可以说“non-ajax post”这个词在某种程度上是“荒谬的”。