在javascript中,我有一些我希望发送的数据作为帖子(不是ajax)。它应该与用户单击提交按钮的行为相同。但是,我没有实际的表格。数据从页面收集到各种变量中,包括我编码为json的数组。
我可以使用display:none创建一个html表单,将值放入此表单,然后触发不可见的提交按钮。还有更好的方法吗?
答案 0 :(得分:6)
如果你不想/不能使用Ajax,那么你必须使用一个表单,这将刷新你的浏览器:
$('<form action="urlToServer" method="POST"></form>')
.append('<input name="data" value="' + yourJSONData + '" />')
.submit()
;
答案 1 :(得分:5)
海报“Claudio Bredfeldt”正在走上正确的道路,但他省略了使这项工作成为必要的一些重要信息。
除非将表单附加到DOM,否则表单无法在所有浏览器中提交。所以你需要做的是更像这样的事情:
var $form = $('<form action="http://myurl" method="POST">');
$form.append('<input name="name" value="bob" />');
$form.appendTo($('body')).submit();
或者,您可能希望将某些css附加到表单,以便在导致表单发布事件发生时,用户不会看到它。您也可以选择在发布后“删除”表单元素,以便“后退”事件不会错误显示,具体取决于浏览器缓存行为。
答案 2 :(得分:0)
在ajax之外执行此操作的最佳方式可能是您使用隐形表单进行描述的方式。但问题很奇怪。