我们平常使用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方式加载数据