POST表单并阻止响应

时间:2012-10-25 16:03:52

标签: html forms post

我有以下表格:

<form method="post" action="http://domain.com/api.json?param=value"></form>

提交此表单后,我将使用http://domain.com/api.json的回复替换我的文档。

是否可以发布此表单,但阻止接收回复,并使用form保留现有HTML?

2 个答案:

答案 0 :(得分:1)

发送HTTP 204无内容response,而不是通常的200 OK响应。

  

10.2.5 204无内容

     

服务器已完成请求但不需要返回   entity-body,可能想要返回更新的元信息。该   响应可能包括新的或更新的元信息形式   实体标题,如果存在,应该与...相关联   要求的变体。

     

如果客户端是用户代理,它不应该更改其文档视图   从导致请求发送的那个。这个回应是   主要是为了允许在没有的情况下进行动作的输入   但是,导致更改用户代理的活动文档视图   任何新的或更新的元信息应该应用于文档   目前在用户代理的活动视图中。

     

204响应绝不能包含消息体,因此总是如此   由标题字段后的第一个空行终止。

答案 1 :(得分:0)

您可以使用AJAX(本例中为XMLHttpRequest)提交帖子

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://domain.com/api.json?param=value", true);
xmlhttp.send(null);

事先,如果你需要。您可以获取您的参数值并对其进行编码:

var val = encodeURIComponent(document.getElementById("param").value);

然后第二行更像是:

xmlhttp.open("POST", "http://domain.com/api.json?param="+val, true);

否则,从form提交的任何类型都会加载页面。黑客就是把它放在隐藏的iframe中,只需在完成后删除iframe。