有没有一种方法可以通过表单类型或操作URL来指定不打开响应的表单?换句话说,我想将信息发送到服务器,但在客户端上不执行任何操作。我知道我可以使用ajax并忽略响应,但如果可能的话,我想避免将所有js添加到我的代码中。
编辑:我并不是要限制自己只使用html表单。在我的情况下,服务器端解决方案也是可接受的。
听起来这正是您想要的。10.2.5 204 No Content
服务器已满足请求,但不需要返回实体正文,并且可能希望返回更新的元信息。响应可以包含新的或更新的实体标头形式的元信息,如果存在,则应与请求的变体相关联。
如果客户端是用户代理,则不应从导致发送请求的那个文档视图更改其文档视图。该响应主要用于允许输入执行操作,而无需对用户代理的活动文档视图进行更改,尽管任何新的或更新的元信息应应用于当前在用户代理中的活动视图的文档。
204响应不能包括消息正文,因此总是在头字段之后的第一行空行终止。
试试这个:
<iframe id="invisible" ...
<form target="invisible" ...
我发现还需要指定name属性(我在IE11中进行了测试)。例如:
<iframe id="invisible" name="invisible" style="display:none;"></iframe>
<form method="post" target="invisible" action="url.com/whatever?x=y" id="fileForm" enctype="multipart/form-data">
使用ASP.NET,您可以拥有一个处理表单提交的页面,并立即结束响应,这将使用户停留在同一页。
然而,完全没有响应对用户来说并不是最好的用户体验.....