You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何跨域获取浏览器STORAGE中存储的目标值?

实现方案

首先明确:浏览器的localStorage/sessionStorage受同源策略限制,https://cdn.sat.gob.gt和https://localhost:49955属于不同源,无法直接跨域读取对方的Storage数据,以下是可行的解决路径:

情况1:你能控制cdn.sat.gob.gt的页面代码

通过跨页面消息通信(postMessage)实现数据传递:

  • 在cdn.sat.gob.gt的页面中添加消息监听逻辑,收到请求后返回目标Storage值;
  • 在你的本地应用中嵌入iframe加载对方页面,发送请求并接收返回的数据。

本地应用端示例代码:

// 创建并嵌入iframe
const iframe = document.createElement('iframe');
iframe.src = 'https://cdn.sat.gob.gt/目标页面路径';
iframe.style.display = 'none';
document.body.appendChild(iframe);

// 监听iframe发来的消息
window.addEventListener('message', (event) => {
  if (event.origin === 'https://cdn.sat.gob.gt') {
    console.log('获取到的Storage值:', event.data);
    // 这里处理拿到的数据
  }
});

// 页面加载完成后发送请求
iframe.onload = () => {
  iframe.contentWindow.postMessage('请求Storage目标值', 'https://cdn.sat.gob.gt');
};

cdn.sat.gob.gt页面端示例代码:

window.addEventListener('message', (event) => {
  // 验证请求来源和消息内容
  if (event.origin === 'https://localhost:49955' && event.data === '请求Storage目标值') {
    const targetValue = localStorage.getItem('你要获取的键名');
    event.source.postMessage(targetValue, event.origin);
  }
});

情况2:无法控制cdn.sat.gob.gt的页面代码

  • 若对方提供了公开API接口返回该Storage对应的业务数据,直接用fetch或axios请求接口,需确保接口配置了CORS允许localhost:49955跨域访问;
  • 若对方无公开接口且不允许跨域,需通过后端代理:在你的后端服务中请求cdn.sat.gob.gt的资源(后端不受浏览器同源策略限制),再将数据返回给前端应用。

注意事项

  • 跨域通信必须验证event.origin,避免恶意消息攻击;
  • 若cdn.sat.gob.gt设置了X-Frame-Options禁止嵌入iframe,第一种方法会失效,只能采用后端代理或API请求方式。

内容的提问来源于stack exchange,提问作者Efrain Mejias C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:16:08