日期:2014-05-16  浏览次数:20356 次

利用iframe另类方法绕过js跨域问题

我想大家都遇到过javascript跨域问题,话不多说,直接开始业务场景。

?

项目1中需要使用文件上传,上传到文件上传下载服务器,上传完成后,使用使用js讲上传完成的图片路径放入页面的input中,提交给后台。

?

很简单的要求,主要是局部刷新但是和跨域掺和一下,就比较麻烦了。

?

主要问题在于:

1.使用ajax不能提交给非当前域名(跨域问题),所以ajax方案完全不能使用

2.使用iframe提交后,需要回调页面实行js进行dom操作,不是同一个域名的子页面不能够进行js操作影响父页面(也是跨域问题)

?

我在网上搜的跨域问题解决主要是取数据的,用script标签解决,貌似不能解决发文件的问题。

发文件好像主要用swfupload,flash不会,所以就自己想解决方法吧。

?

最后的结果是这样的:

?

项目1中使用iframe包装自己的一个upload页面,upload主要是一个表单,表单的action设为文件上传下载服务器上的项目2提供的文件上传接口,文件上传接口最后在完成文件上传后,跳转到项目1中的callback页面,使用get传值的方式把路径传递过来,然后在callback页面执行js操作父页面。

?

很简单的思路,通过一个跳转回原项目页面的操作,把js跨域问题绕过了。

如果大家有更好的处理方法,希望能赐教.

?

?

?