我们平常使用iframe时,直接设定src属性只能是get请求方式 ,get请求的参数大小有限制
如何实现即使用iframe又能通过post请求
两种方式
- ajax使用post请求返回页面,直接将返回的页面数据放入iframe标签中
- 结合form表单,利用form表单的post请求方式达到目的,实现方式如下 实现方式:
- 增加一个form表单的标签,method设置为post,target设置一个标识,假如target=”target1”
- 在iframe设置name属性,name需要与target一致 name = “target1”
- 发送请求时通过发送form submit请求来使用post方式
<div> <form id="form1" action="" target="target1" method="post"></form> <iframe id="xxx" name="target1" src=""></iframe> </div>
$('#form1').attr('action','url'); $('#form1').submit();
这样就实现了,使用浏览器F12可以查看请求方式确实是post了
<form id="myForm" method="post" target="myFrame"> <input type="hidden" name="datas" id="data_param" /> </form> <iframe name="myFrame" width="500px" height="200px;" ></iframe>
$("#data_param").val(dp); $("#myForm").attr("action", "/java/loadHtmlData"); $("#myForm").submit();
只需将form的target属性与iframe的name保持一致,即可实现iframe的post方式加载数据