HTML5数据库和localStorage是否可以跨子域共享?

新手上路,请多包涵

我正在尝试使用 Safari 跨子域共享数据。我想使用 HTML5 数据库(特别是 localStorage ,因为我的数据只是键值对)。

但是,似乎无法从 sub.example.com 访问存储到 example.com 的数据(反之亦然)。在这种情况下有什么办法可以共享一个数据库吗?

原文由 Sebastian Celis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 368
1 个回答

2016 年更新

Zendesk 的这个 对我有用。

样本:

中心

// Config s.t. subdomains can get, but only the root domain can set and del
CrossStorageHub.init([
  {origin: /\.example.com$/,            allow: ['get']},
  {origin: /:\/\/(www\.)?example.com$/, allow: ['get', 'set', 'del']}
]);

注意 $ 用于匹配字符串的结尾。上例中的正则表达式将匹配诸如 valid.example.com 类的来源,但不匹配 invalid.example.com.malicious.com

客户

var storage = new CrossStorageClient('https://store.example.com/hub.html');

storage.onConnect().then(function() {
  return storage.set('newKey', 'foobar');
}).then(function() {
  return storage.get('existingKey', 'newKey');
}).then(function(res) {
  console.log(res.length); // 2
}).catch(function(err) {
  // Handle error
});

检查 https://stackoverflow.com/a/39788742/5064633

原文由 super1ha1 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题