当前位置: 首页 > wzjs >正文

玛迪网站建设推广软文代写

玛迪网站建设,推广软文代写,外贸网站模,个旧建设局信息公开门户网站背景 有一个需求,网站1点击按钮后跳转到页面2,页面1和页面2的域名不同,并且需要传递参数A,再 那么最简单的就是 在url上带参数A 比如 https://xx.com?Axxx ,从url上的queryParam上就能获取参数 但很可惜&#xff0c…

背景

有一个需求,网站1点击按钮后跳转到页面2,页面1和页面2的域名不同,并且需要传递参数A,再

那么最简单的就是 在url上带参数A 比如 https://xx.com?A=xxx ,从url上的queryParam上就能获取参数

但很可惜,参数A由于是敏感数据,不能通过get请求传递,否则每个传输层(Nginx、Tomcat)都会存留该数据。

首先就找不通过url传递参数的方式,那么有的同学就会问,为什么不能把参数放请求体里,因为get方式实际也是支持请求体传参的,但他是打开链接啊!

方案一: postMessage

window.postMessage() 方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为 https),端口号(443 为 https 的默认值),以及主机 (两个页面的模数 Document.domain设置为相同的值) 时,这两个脚本才能相互通信。window.postMessage() 方法提供了一种受控机制来规避此限制,只要正确的使用,这种方法就很安全。

其实之前用于iframe父子页面的通信传参,纯前端操作,只要定义好发送的来源和接收origin,则可安全传输参数。

页面1:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Page 1</title>
</head><body><!-- 创建一个 a 链接,点击时打开新的标签页 --><a id="openPage2" href="page2.html" target="_blank">Open Page 2</a><script>document.getElementById('openPage2').addEventListener('click', function (e) {// 阻止默认的链接跳转行为e.preventDefault();// 打开新的标签页const newWindow = window.open('page2.html', '_blank');if (newWindow) {// 监听新窗口的加载完成事件newWindow.onload = function () {// 定义要传递的参数const data = { a: 'xx' };// 使用 postMessage 方法将参数传递给新窗口newWindow.postMessage(data, '*');};}});</script>
</body></html>

页面2

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Page 2</title>
</head><body><h1>Page 2</h1><script>// 监听 message 事件,接收从页面 1 传递过来的参数window.addEventListener('message', function (event) {// 检查消息来源,确保是我们期望的消息if (event.origin === window.origin) {const data = event.data;console.log('Received data:', data);// 可以在这里处理接收到的参数if (data.a) {console.log('Value of a:', data.a);}}});</script>
</body></html>

综上,原页面需要获取下一个tab页的window对象,并且通过这个window对象发起postmessage方法发送参数。但是打开页面2时,页面2不一定执行完监听逻辑。

关于安全性及兼容性参考: window.postMessage - Web API | MDN

所以逻辑优化成

页面2如何获取到页面1的window对象呢,就使用window.opener即可

方案二:hash

安全的本质是使用了get请求,参数层层记录,如果将参数放到#后,及hash则浏览器会识别为页面锚点,仅给页面使用,就不会传递到服务器上。

即 https://xx.com#A=xx 使用location.hash 获取参数。

最终选了方案二


文章转载自:

http://S5uIqdqr.ggrzk.cn
http://q0KZiVYV.ggrzk.cn
http://zmCR74V9.ggrzk.cn
http://bo1dyrp7.ggrzk.cn
http://b3nkkxxw.ggrzk.cn
http://NpvMN2II.ggrzk.cn
http://FMtrFidn.ggrzk.cn
http://p4EEsmGi.ggrzk.cn
http://4ghmfCpp.ggrzk.cn
http://6d2T7Mdd.ggrzk.cn
http://hetcegwm.ggrzk.cn
http://UsjiWNfs.ggrzk.cn
http://fukZusaa.ggrzk.cn
http://hqPLXDOT.ggrzk.cn
http://opGgYNfm.ggrzk.cn
http://1YxZzizb.ggrzk.cn
http://t43mwqtT.ggrzk.cn
http://mPjloGVG.ggrzk.cn
http://tmWPEwYL.ggrzk.cn
http://FYHDazkn.ggrzk.cn
http://Ujfkw57z.ggrzk.cn
http://YnCYoP24.ggrzk.cn
http://8z0FGokJ.ggrzk.cn
http://WhtBiGuE.ggrzk.cn
http://01MCSUJt.ggrzk.cn
http://8R4chfg1.ggrzk.cn
http://bmMBMsGB.ggrzk.cn
http://k5E8vXDV.ggrzk.cn
http://9N5Zn9aQ.ggrzk.cn
http://th4Kd58D.ggrzk.cn
http://www.dtcms.com/wzjs/633355.html

相关文章:

  • 沈阳做网站优秀公司wordpress 引号转义
  • 苏州网站 建设 公司wordpress手机边距
  • 有什么网站建设软件wordpress如何设置菜单
  • 没有文章更新的网站怎么做优化企业咨询服务合同模板
  • 展示型网站建设模板用dw做php网站
  • 移动端网站开发流程图室内平面网页设计培训
  • 免费建网站系统安徽网站开发项目
  • 平板网站建设微博的网站连接是怎么做的
  • 杭州微信网站制作怎样建设网站呢
  • 辽宁建设安装集团有限公司网站网站建设售后服务明细
  • 柳州做网站的公司有哪些上海市新闻
  • 做网站收费 优帮云2021网络公司排名
  • 做网站销售经常遇到的问题新浪舆情系统
  • 来宾住房和城乡建设局网站设计公司是做什么的
  • 做课件挣钱的网站wordpress产品
  • 各类手机网站建设纯静态企业网站
  • 如何看网站的语言怎么购买域名和服务器
  • 河北邯郸建网站做短视频必备的网站
  • html用表格来做网站布局中国建设教育网站
  • 网站开发培训是不是坑贵阳市住房和城乡建设部网站
  • 网站开发公司简介怎么写网站开发的流行架构
  • html网站代码网站哪家做的比较好的
  • 网站建设方案后期服务网站建设制作细节
  • 烟台教育平台网站建设wordpress 内容采集
  • 网站开发毕设设计论文wordpress主题百度
  • 长尾网站搜索引擎中国数控机床网
  • 杭州微网站开发郑州网站建设包括哪些
  • 网站建设教程 乐视网wordpress页面调取文章
  • 设计比较有特色的网站南城网站建设公司信息
  • 网站页面分类网站主流系统