页面跨域传参 nginx iframe
2016-04-01 17:14
405 查看
设定TT和KB为不同的域
1、TT set-ticket-type.html页面div中装iframe(指向KB页面 documentDisplay.jsp) <div id ="tt-type-kb" style="display:none"> <iframe name ="tt-type-kb-display" src= "/CS/cs/kb/query/documentDisplay.jsp?multiselect=true&crossPage=true&PERMIT_CHANNEL=2&routeSrc=troubleticket" width ="100%" height= "500px"> </iframe > </div > $.openPopupDiv('tt-type-kb','Knowledge Base','1024','545', { "onConfirm": "ticketType.closePopupDivForKBPage()","draggable" :true,"resizable" :true}); 2、nginx配置反向代理 #设置知识库的菜单代理 location /CS { #设置主机头和客户端真实地址,以便服务器获取客户端真实IP proxy_set_header Host $Host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #禁用缓存 proxy_buffering off; #设置反向代理的地址 proxy_pass http://xxxx.xxxx.xxx.xx:0000/CS; } 只有配置反向代理,tt才能访问kb页面的方法: window.frames["tt-type-kb-display"].submitSelected(); submitSelected()为kb的方法,包含下面的逻辑(获取数据,传参) 3、KB页面操作结束时创建一个Iframe,指向TT的页面,将数据作为参数发送到TT页面kbCallback.html var list = new Array(); var obj = new Object(); obj.documentId = docTable.getValue(rows[i], "DOCUMENT_ID"); obj.documentName = docTable.getValue(rows[i], "DOCUMENT_NAME"); list.push(obj); var ff = document.createElement( "iframe"); ff.style.visable = "hidden"; ff.style.display= 'none'; ff.src= "/ARIESRES/crm-bj/trouble-ticket/ticket-type/kbCallback.html?kbId=" +JSON.stringify(list); document.body.appendChild(ff); 4、在kbCallback.html页面获取KB传过来的值,再传给set-ticket-type.js <!DOCTYPE html>//文档头,在ie8需要强制使用标准渲染模式才能使用json <html><body ></body ></html> <script> window.onload = function (){ var url = location.search; var str = ""; if (url.indexOf( "?") != -1) { str = url.substr(url.indexOf( "=")+1); str = decodeURIComponent(str); } var param = JSON.parse(str); parent.parent.ticketType.doAfterActionForKBPage(param); } </script> 注意1: kbCallback.html的parent是documentDisplay.jsp,documentDisplay.jsp的parent是set-ticket-type.html,所以用parent.parent.function 注意2:kbCallback.html是个空页面,作为桥梁使用相关文章推荐
- iframe 大数据量传参 本地能调用远程页面 不存在跨域问题 js组件调用原理
- 内嵌页面iframe传参f
- 跨域情况下iframe页面与父页面的交互
- iframe父子页面跨域通讯demo
- 页面中iframe相互传值传参
- JavaScript实现内嵌的iframe跨域调用父页面js方法
- iframe中页面跨域访问javascript
- iframe跨域传输数据(一);子页面访问主框架DOM元素;
- 使用postMesssage()实现iframe跨域页面间的信息传递
- 使用postMesssage()实现跨域iframe页面间的信息传递方法
- 跨域调用iframe父页面的方法
- 模态框/页面 跨域通信,如何用模态框iframe里的按钮关闭模态框?
- 使用Jquery向一个空白网页动态创建一个iframe,及嵌入页面,和向嵌入页面传参
- 跨域传值即主页面与iframe之间互相传值
- IE下IFrame引用跨域站点页面时,Session失效问题解决
- js跨域调用iframe子页面的函数 提示"没有权限"
- 页面中iframe中嵌入一个跨域的页面,让这个页面按照嵌入的页面宽高大小显示的方式;iframe嵌套的页面不可以编辑的问题解决方案
- 跨域下使用获取iframe的父页面URL
- 页面中iframe中嵌入一个跨域的页面,让这个页面按照嵌入的页面宽高大小显示的方式;iframe嵌套的页面不可以编辑的问题解决方案
- 润乾实现父页面传参到iframe嵌套的报表