`
housen1987
  • 浏览: 344899 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

iframe跨域传值超过2M的问题解决

    博客分类:
  • HTML
阅读更多

使用iframe进行传值时,如果采用URL的方式传递,则最大只能传递大约2k的数据,超过这个长度就会被截断了,那么是否可以采用post的方式传值呢?答案是可以的,我们可以采用js创建一个form表单,并将此form提交到iframe上,这样就能做到打破2k数据的限制。

 

<iframe id="frame1" name="frame1" src="" style="display:none"></iframe>
<script>
var tranVal = function(){
	document.getElementById("frame1").style.display = "block";
	var postForm = document.createElement("form");
	postForm.method = "post";
	postForm.action = "http://localhost:8080/test/getdata.jsp";
	postForm.target = "frame1";//用来将数据提交到frame1上
	
	var input = document.createElement("input");
	input.type = "hidden";
	input.name = "username";//这个是传值的名称,要记住
	var strA = "1234567890";
	//循环500000次后,保证字符串的大小大于2M
	for(var i=0;i<500000;i++) strA+= "1234567890";
	input.value = strA;
	postForm.appendChild(input);
	document.body.appendChild(postForm);
	postForm.submit();
	//用完之后,不要忘记删掉
	postForm.removeChild(input);
	document.body.removeChild(postForm);
}
</script>
<button onclick="tranVal()">
	传递值
</button>

 

还需要注意2个问题: 

1 tomcat下post不能超过2M的问题

这个需要将tomcat的配置文件server.xml修改一下:

 

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" maxPostSize="0"/>

 maxPostSize为0时,表示不用限制长度。

2 跨域的问题

跨域不影响iframe的post传值,发送方的tomcat无需更改,只是需要将接收方的tomcat的maxPostSize修改为0即可。

分享到:
评论

相关推荐

    完美解决iframe跨域问题

    本文将深入探讨如何“完美解决iframe跨域问题”,并介绍其底层的`window.name`转换代理实现。 **一、iframe跨域的基本概念** 1. **什么是iframe**:iframe是一种HTML元素,允许在单个网页中嵌入另一个网页。它通过...

    iframe 跨域解决方法

    这篇博客将深入探讨如何解决`iframe`的跨域问题。 首先,理解同源策略是至关重要的。同源策略是浏览器为保障用户数据安全而设置的一种机制,它限制了来自不同源的文档或脚本之间的交互。对于`iframe`,如果源(协议...

    iframe跨域常用问题和iframe页面自适应

    在网页开发中,`iframe`...总结,理解和掌握`iframe`的跨域解决方案以及自适应策略,对于开发高效且用户体验良好的Web应用至关重要。在实际应用中,还需要注意安全性、性能优化等问题,以提供更优质的网页服务。

    iframe 跨域访问session

    `iframe` 跨域访问`session`正是为了解决这一问题。 首先,让我们了解一下`session`和`cookie`的关系。`session`通常用于存储用户登录状态等临时信息,而`cookie`则作为`session` ID的载体在客户端和服务器之间传递...

    iframe跨域问题

    iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法

    iframe跨域通信解决方法

    ### iframe跨域通信解决方法 在现代Web开发中,跨域...通过上述步骤,可以有效地解决`iframe`跨域通信的问题。这种方法不仅适用于Vue项目,也可以应用于普通的Web页面中,为开发者提供了灵活且强大的跨域通信方案。

    iframe跨域解决方案

    本篇将深入探讨如何解决`iframe`跨域问题。 首先,我们需要了解`iframe`的基本概念。`iframe`全称 Inline Frame,即内联框架,是一种在HTML文档中嵌入另一个HTML文档的方式,常用于加载外部内容,如广告、地图、...

    解决JS跨域访问IFrame的解决方案

    综上所述,解决JS跨域访问IFrame的问题,需要根据实际需求和环境选择合适的解决方案,结合服务器端的支持和客户端的技术手段,确保跨域通信的安全和高效。在开发过程中,应充分理解同源策略的限制,熟练掌握跨域通信...

    关于iframe跨域POST提交的方法示例

    以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...

    iframe跨域访问示例

    为了解决iframe跨域访问的问题,Web开发中引入了几种解决方案: 1. **CORS(Cross-Origin Resource Sharing)**:这是一种服务器端的方法,允许特定的资源被其他域的页面访问。通过设置HTTP响应头`Access-Control-...

    iframe跨域与session失效问题的解决办法

    在探讨如何解决iframe跨域与session失效的问题之前,我们需要了解几个重要的概念:什么是跨域,什么是session以及cookie。 首先,跨域问题通常出现在Web应用中,尤其是在使用iframe嵌入第三方网站内容时。在Web技术...

    iframe 跨域 自动适应高度

    本文将详细讲解如何解决`iframe`跨域问题以及实现自动适应高度的功能。 1. **同源策略与iframe跨域** 同源策略是浏览器安全的一项基础机制,它限制了来自不同源的"文档"或脚本相互交互。当一个`iframe`加载的页面...

    【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx

    ASP.NET 跨域与 Session 失效问题的解决办法 在 ASP.NET 开发中,跨域和 Session 失效问题是一个常见的问题,特别是在使用 iframe 嵌入远程应用时。今天,我们来讨论这个问题的解决办法。 什么是跨域和 Session ...

    MVC实现iframe弹窗传值

    在Web开发中,MVC(Model-...综上所述,实现MVC中的iframe弹窗传值涉及前端JavaScript交互、URL参数传递以及后端MVC的控制器和视图的配合。通过合理的代码组织和利用现有的库,可以创建出高效且易于维护的弹窗系统。

    iframe父向子传值实例.rar

    然而,由于浏览器的同源策略限制,`iframe`内的页面与包含它的父页面在不同源时,不能直接访问彼此的DOM或JavaScript变量,这就引出了"iframe父向子传值"的问题。 在标题"iframe父向值实例.rar"和描述中提到的解决...

    跨域传值即主页面与iframe之间互相传值

    【跨域传值】是指在Web开发中,由于同源策略的限制,主页面与不同源的`iframe`之间无法直接进行数据交换。但通过一些技术手段,开发者可以实现主页面与`iframe`之间的通信,以达到数据共享的目的。本文将详细介绍两...

    js-iframe-传值调用实例代码

    这个实例代码“js-iframe-传值调用”旨在演示如何通过JavaScript在父窗口和iframe之间传递数据,实现页面间的交互。我们将详细探讨这个过程中的关键知识点。 首先,我们要理解iframe的基本结构。一个iframe标签通常...

    解决ASP.NET AJAX在frame及iframe中跨域访问的问题

    var c=a.document.documentElement,d=b.left-2+c.scrollLeft,e=b.top-2+c.scrollTop;try{var g=a.ownerDocument.parentWindow.frameElement||null;if(g){var f=2-(g.frameBorder||1)*2;d+=f;e+=f}}catch(h){}return ...

Global site tag (gtag.js) - Google Analytics