JavaScript iframe 传参问题

tsinghan · 2014年05月15日 · 最后由 wuwx 回复于 2014年05月18日 · 3965 次阅读

需要在网站中用 iframe 嵌入了一个其他 web 应用,然后在 iframe 里面点击这个 web 应用,需要带入当前的用户信息过去。 搜了一下有 iframe 跨域单点登陆解决方法,但是目前场景不适合这种做法。
我的想法是双方约定好加密公式,将用户信息通过 url 传过去,对方再解密做验证,不知道这种方法有什么弊端? 还有我用什么方式能做到,点击 iframe 里面的每个 url 时 将这个参数带上?

是不是需要在子页面中写段 js 来获取父窗口的信息 并且拼接到 url 中...

  • 跨子域的话,是可以直接互相访问的
  • 加密参数的方式可以跨域,但是加密解密的算法得是服务器端来做
  • iframe 里的域设定自己的 cookie,后面就不需要再带上参数了啊

#2 楼 @perrywky 不是跨子域, “iframe 里的域设定自己的 cookie,后面就不需要再带上参数了”是不是,第一次用子窗口获取父窗口的参数,然后放到 cookie 里 这种方式?

你是在做 tracking 么?

#4 楼 @hozaka 不是的,需求是,通过登录网站的用户,对嵌入的 app 所有的操作,app 需要能记录下来用户的操作。

#5 楼 @TsingHan 不就是 tracking 么……既然 app 需要记录,那对方的 app 肯定是需要做调整的,直接从你的 URL 里面抓参数,app 自己做 tracking 不行?

#6 楼 @hozaka 我刚才重新想了一下,我需要做的就是把用户信息传给 app,剩下的事情由 app 处理行了。问题是,我现在在想怎么传用户信息给 app,目前想到通过 js 给 iframe 的 src url 后面加上这个参数这种方法

portal?

#7 楼 @TsingHan 看你需要传多少信息,几个参数可以通过 URL,稍多可以用 cookies,再复杂点就用 JavaScript,注意安全性

因为你的域引用对方 app 的域,所以应该没跨域的问题

#3 楼 @TsingHan 是的,或者设定一个新的登录 cookie,这样之后的请求就不用反复解密

#11 楼 @TsingHan 你是想做个 portal 么

需要 登录 后方可回复, 如果你还没有账号请 注册新账号