2. ProjectA存在a1页面,ProjectB存在b1页面。
3. b1页面实现的是账号、密码登陆功能。
4. a1页面存在一个按钮btn1,点击btn1则打开新的标签页且链接到b1页面,同时在a1页面中弹出提示“未登陆”。
5. 在新的标签页链接到的b1页面上登陆成功后,a1页面提示从“未登陆”转换为“登陆成功”。
6. 问如何实现以上功能,最好可以给出详细的算法和技术,再次强调注意几个限定的条件:
a) ProjectA和ProjectB是两个不同项目,同时部署在tomcat上。
b) ProjectB不可修改。
c) 是否能在JavaScript上寻找可能性,还是浏览器插件。
7. 感谢提供想法的各位网友!
13 个解决方案
#1
如果跨域的话就很难办到了。
如果能修改projectB 可以用webservice
用ajax提交B的登录,或许能得到返回信息,但无法获知用户名等session信息。
如果能修改projectB 可以用webservice
用ajax提交B的登录,或许能得到返回信息,但无法获知用户名等session信息。
#2
ProjectB绝对不可修改,有其他可行的方法吗?
#3
4. a1页面存在一个按钮btn1,点击btn1则打开新的标签页且链接到b1页面,同时在a1页面中弹出提示“未登陆”。
这是不可能实现的,打开新标签页需要利用 a 标签跳转,即使是不跨域,也不可能在两个标签页间进行操作
这是不可能实现的,打开新标签页需要利用 a 标签跳转,即使是不跨域,也不可能在两个标签页间进行操作
#4
用JavaScript window对象的open方法和alert方法就可实现。Project B不可修改,只能在浏览器端的技术进行联想。这显然不是一个简单对web技术应用的问题,我想知道大家有什么好的解决思路。比如说运行插件,对http数据包的数据进行监听和分析等。
#5
window.open 方法打开的不是 新标签页,而是弹出式窗口。可能碰巧你的浏览器是在 新标签页 打开了
但是如果 Project B 是透过 Project A 的服务器打开的,而你的浏览器又支持 websock 的话,那情况就大不一样了
但是如果 Project B 是透过 Project A 的服务器打开的,而你的浏览器又支持 websock 的话,那情况就大不一样了
#6
在A里面模拟B的登录,用AJAX来提交,可以得到返回信息啊,成功了就把用户名加入session
#7
Project B 有回调的url还可以在回调url 处理。
但是新标签打开,js,控制不了浏览器标签的。
弹出div,内嵌 iframe 应该可以
但是新标签打开,js,控制不了浏览器标签的。
弹出div,内嵌 iframe 应该可以
#8
先抛开JavaScript的问题不说,重点是Project B不可修改的问题,谁能给出一个可行的算法啊?
起码提供个思路吧!感谢各位大神了。
#9
不是说了么。应该是可行的。
你在A里面做一个登录页面。然后AJAX提交到B,会得到一个返回信息。根据这个信息判断是否在B登录成功。然后在做后续处理。。
你在A里面做一个登录页面。然后AJAX提交到B,会得到一个返回信息。根据这个信息判断是否在B登录成功。然后在做后续处理。。
#10
我明白你的意思了,那如果Project B里面还有一个验证码呢?
#11
用iframe做代理。。a iframe引入b的一个页面做代理,参考:
javascript通过iframe加载同源代理页面实现*域跨域操作
或者用html5的postMessage也可以进行交互:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/
或者用html5的postMessage也可以进行交互:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/
#12
看过你第一种提议,基本看懂原理。是实现了类似跨域的交互,我也不知道该如何定义这种做法。
但是起码没有满足Project B不能修改的条件。也许有可能是我没有理解透彻。能不能有针对性地对题目进行分析解释。感谢!
第二种提议还没来得及看。
#13
如果你的b无法修改就没办法跨域了。。上面2中方法你都要修改过b
否则你就要在a中做好b的代理,而且要记录相关b的登陆session对应的cookie值之类的。
#1
如果跨域的话就很难办到了。
如果能修改projectB 可以用webservice
用ajax提交B的登录,或许能得到返回信息,但无法获知用户名等session信息。
如果能修改projectB 可以用webservice
用ajax提交B的登录,或许能得到返回信息,但无法获知用户名等session信息。
#2
如果跨域的话就很难办到了。
如果能修改projectB 可以用webservice
用ajax提交B的登录,或许能得到返回信息,但无法获知用户名等session信息。
ProjectB绝对不可修改,有其他可行的方法吗?
#3
4. a1页面存在一个按钮btn1,点击btn1则打开新的标签页且链接到b1页面,同时在a1页面中弹出提示“未登陆”。
这是不可能实现的,打开新标签页需要利用 a 标签跳转,即使是不跨域,也不可能在两个标签页间进行操作
这是不可能实现的,打开新标签页需要利用 a 标签跳转,即使是不跨域,也不可能在两个标签页间进行操作
#4
4. a1页面存在一个按钮btn1,点击btn1则打开新的标签页且链接到b1页面,同时在a1页面中弹出提示“未登陆”。
这是不可能实现的,打开新标签页需要利用 a 标签跳转,即使是不跨域,也不可能在两个标签页间进行操作
用JavaScript window对象的open方法和alert方法就可实现。Project B不可修改,只能在浏览器端的技术进行联想。这显然不是一个简单对web技术应用的问题,我想知道大家有什么好的解决思路。比如说运行插件,对http数据包的数据进行监听和分析等。
#5
window.open 方法打开的不是 新标签页,而是弹出式窗口。可能碰巧你的浏览器是在 新标签页 打开了
但是如果 Project B 是透过 Project A 的服务器打开的,而你的浏览器又支持 websock 的话,那情况就大不一样了
但是如果 Project B 是透过 Project A 的服务器打开的,而你的浏览器又支持 websock 的话,那情况就大不一样了
#6
在A里面模拟B的登录,用AJAX来提交,可以得到返回信息啊,成功了就把用户名加入session
#7
Project B 有回调的url还可以在回调url 处理。
但是新标签打开,js,控制不了浏览器标签的。
弹出div,内嵌 iframe 应该可以
但是新标签打开,js,控制不了浏览器标签的。
弹出div,内嵌 iframe 应该可以
#8
window.open 方法打开的不是 新标签页,而是弹出式窗口。可能碰巧你的浏览器是在 新标签页 打开了
但是如果 Project B 是透过 Project A 的服务器打开的,而你的浏览器又支持 websock 的话,那情况就大不一样了
在A里面模拟B的登录,用AJAX来提交,可以得到返回信息啊,成功了就把用户名加入session
Project B 有回调的url还可以在回调url 处理。
但是新标签打开,js,控制不了浏览器标签的。
弹出div,内嵌 iframe 应该可以
先抛开JavaScript的问题不说,重点是Project B不可修改的问题,谁能给出一个可行的算法啊?
起码提供个思路吧!感谢各位大神了。
#9
不是说了么。应该是可行的。
你在A里面做一个登录页面。然后AJAX提交到B,会得到一个返回信息。根据这个信息判断是否在B登录成功。然后在做后续处理。。
你在A里面做一个登录页面。然后AJAX提交到B,会得到一个返回信息。根据这个信息判断是否在B登录成功。然后在做后续处理。。
#10
不是说了么。应该是可行的。
你在A里面做一个登录页面。然后AJAX提交到B,会得到一个返回信息。根据这个信息判断是否在B登录成功。然后在做后续处理。。
我明白你的意思了,那如果Project B里面还有一个验证码呢?
#11
用iframe做代理。。a iframe引入b的一个页面做代理,参考:
javascript通过iframe加载同源代理页面实现*域跨域操作
或者用html5的postMessage也可以进行交互:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/
或者用html5的postMessage也可以进行交互:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/
#12
用iframe做代理。。a iframe引入b的一个页面做代理,参考: javascript通过iframe加载同源代理页面实现*域跨域操作
或者用html5的postMessage也可以进行交互:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/
看过你第一种提议,基本看懂原理。是实现了类似跨域的交互,我也不知道该如何定义这种做法。
但是起码没有满足Project B不能修改的条件。也许有可能是我没有理解透彻。能不能有针对性地对题目进行分析解释。感谢!
第二种提议还没来得及看。
#13
用iframe做代理。。a iframe引入b的一个页面做代理,参考: javascript通过iframe加载同源代理页面实现*域跨域操作
或者用html5的postMessage也可以进行交互:http://www.ibm.com/developerworks/cn/web/1301_jiangjj_html5message/
看过你第一种提议,基本看懂原理。是实现了类似跨域的交互,我也不知道该如何定义这种做法。
但是起码没有满足Project B不能修改的条件。也许有可能是我没有理解透彻。能不能有针对性地对题目进行分析解释。感谢!
第二种提议还没来得及看。
如果你的b无法修改就没办法跨域了。。上面2中方法你都要修改过b
否则你就要在a中做好b的代理,而且要记录相关b的登陆session对应的cookie值之类的。