弄过支付宝的程序员可能都知道,里面有很多地方都用到了自提交表单的方式,支付宝的接口通过请求API的形式取得服务器返回的表单字符串,使用out.print("表单字符串")在jsp页面上自提交表单。这种做法虽然很少有人使用,但是它也有着自身的价值,例如有的时候在js内部要提交一个完整的表单但是又不能使用ajax提交,这种时候这种思想就能发挥作用了
封装表单的js如下
var formStart="<form id="userForm" name="userForm" action="check.php" method="POST">";
var content="<input type="hidden" name="id" value="20"/>";
var formEnd="</form>";
var submitJs="<script>document.forms['userForm'].submit();</script>";
var completeForm=formStart+content+formEnd+submitJs;
document.write(completeForm);
这段代码执行后等效于直接给服务器提交了一个表单,有点类似POST请求,这样的话就不需要通过地址栏传参,安全性得到了提高