利用iframe上传文件获取返回值的跨域问题

本文介绍了一种解决跨域文件上传的技术方案。通过修改上传组件的实现方式,使用iframe结合window.status属性,实现了不同域名间文件上传并自动返回路径到input输入框的功能,解决了跨域访问限制的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为要用到一个通用的上传,
所以直接把以前写的一个上传程序Copy过来了,
想着传递两个参数,input的名称和form的名称,然后就能自动把值返回过去了,
在其他项目中直接调用这个就好了,
结果写好后,在本地测试正常,代码如下:

<form name="myform" action="MyJsp">
<input type=text name="pic">   
<iframe src="Upload?form=myform&inputName=pic"></iframe>
</form>


然后在处理完整个上传流程后,用

<script>parent.document.form名称.input名称.value='path路径'</script>


来自动返回上传路径到input输入框,
当然,这样写,没有错,而且我一直都是这样来用的,
但是这次出问题了,
我在本机都正常,值能正确返回,
但是同事在另外的电脑上用的时间就出问题了,
因为所在项目不同,需要用完整路径来iframe进来,
也就是改成了这个样子,

<iframe src="http://www.xxx.com/UploadFile/Upload?form=myform&inputName=pic"></iframe>


HO,问题出来了,上传后提示错误,拒绝访问,
晕,怎么会拒绝访问,赶紧GG了下,
发现有个跨域访问的问题,IE默认级别禁止了跨域访问,
好像是这样,值回不来了,么办法,又GG了下,
找到另外一种方法,
这个挺爽,也不需要什么form名称之类的。:)

修改后的完整代码如下:

<form name="myform" action="MyJsp">
<input type=text id=text1>   
<iframe src="http://www.xxx.com/UploadFile/Upload" id=t1></iframe>
<script for=t1 event=onload>
text1.value
=window.status;
</script>
</form>

 

在上传流程完成后,

<script>window.status="Path上传后的路径";</script>


这样就可以了,比开始的方法简便的多了。:)

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2009/08/21/1551429.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值