8

在 javascript 中,我有一些我想作为帖子发送的数据(不是 ajax)。它的行为应该与用户单击提交按钮一样。但是,我没有实际的表格。数据从页面收集到各种变量中,包括我编码为 json 的数组。

我可以使用 display:none 创建一个 html 表单,将值放入此表单,然后触发不可见的提交按钮。有没有更好的办法?

4

3 回答 3

6

如果您不想/不能使用 Ajax,那么您必须使用一个表单来执行此操作,该表单将刷新您的浏览器:

 $('<form action="urlToServer" method="POST"></form>')
    .append('<input name="data" value="' + yourJSONData + '" />')
    .submit()
;
于 2013-05-23T10:50:26.407 回答
5

海报“Claudio Bredfeldt”走在了正确的轨道上,但他忽略了一些必要的关键信息来完成这项工作。

表单不能在所有浏览器中提交,除非它们附加到 DOM。所以你需要做的是更像这样的事情:

var $form = $('<form action="http://myurl" method="POST">');
$form.append('<input name="name" value="bob" />');
$form.appendTo($('body')).submit();

或者,您可能希望将一些 css 附加到表单,以便在您导致表单发布事件发生时它不会出现在用户面前。您还可以选择在发布后“删除”表单元素,以便“返回”事件不会因浏览器缓存行为而错误显示。

于 2013-08-27T22:05:13.023 回答
0

在 ajax 之外执行此操作的最佳方式可能是您使用不可见形式描述的方式。奇怪的问题。

于 2013-05-23T10:50:44.107 回答