iframe中src参数过长问题解决

iframe中src参数过长问题解决


问题描述:iframe的src跳转页面是get提交,get提交在浏览器中最大限制在2k以内,超过2k就终止跳转,所以就想办法用post跳转。


解决方法:

1、在父页面获得iframe的window对象。

2、往iframe里写入form表单,form表单使用post传输,并且写入要传递的大长度参数。

3、父页面控制iframe的form提交。



js

var url = 'mubiao.jsp';

var data = '此处为大数据';

var html = '<form action="'+url+'" method="post" target="_self" id="postData_form">'+

'<input id="wor_iteId" name="wor_iteId" type="hidden" value="'+data+'"/>'+

'</form>';

document.getElementById('ifr_1').contentWindow.document.wirte(html);

document.getElementById('ifr_1').contentWindow.document.getElementById('postData_form').submit();



页面

<iframe id="ifr_1" src="about:blank" width="100%" height="140px" noresize>


JS刷新iframe


有效方法:

var myIfr = document.getElementById('q_ifr');

myIfr.src = myIfr.src;





另外有用这个的

document.frames('q_ifr').location.reload();

我在使用的时候在谷歌和火狐下没反应。

要用还是用上面的那个好使。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用iframe加载跨域资源时,浏览器会使用同源策略进行限制,因此需要使用代理页面来解决跨域问题。ASP.NET可以使用aspx页面来作为代理页面。 具体步骤如下: 1. 在项目添加一个aspx页面,例如Proxy.aspx。 2. 在Proxy.aspx.cs文件编写一个处理请求的方法,例如GetResource()。 3. 在GetResource()方法使用WebRequest对象向目标资源发起请求,并获取响应数据。 4. 将响应数据返回给前端页面。 5. 在前端页面使用iframesrc属性指定代理页面的地址,并将目标资源的地址作为参数传递给代理页面。 6. 在代理页面获取目标资源的地址,并在GetResource()方法使用该地址发起请求。 7. 将响应数据返回给前端页面,并在前端页面使用iframe加载响应数据。 示例代码如下: Proxy.aspx.cs: ```csharp protected void Page_Load(object sender, EventArgs e) { // 获取目标资源的地址 string url = Request.QueryString["url"]; // 发起请求并获取响应数据 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string data = reader.ReadToEnd(); // 将响应数据返回给前端页面 Response.Clear(); Response.Write(data); Response.End(); } public void GetResource(string url) { // 构造代理页面的地址 string proxyUrl = "http://localhost:8080/Proxy.aspx?url=" + url; // 使用iframe加载代理页面 var iframe = document.createElement("iframe"); iframe.src = proxyUrl; document.body.appendChild(iframe); } ``` 前端页面: ```html <body> <script> GetResource("https://example.com/resource"); </script> </body> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值