在其他域中设置localStorage

时间:2019-09-23 18:13:51

标签: javascript local-storage cross-domain

我正在尝试在一个域(如my-site.com)中设置一个变量,我可以从其他站点(如my-other-site.com)访问该变量。基本上,当我收到服务器的响应时,我想在localStorage中设置一个变量,然后将页面重定向到下一个站点(例如:在my-site.com中,我将变量“ foo”设置为重定向页面)。在my-other-site.com内部,我想访问该变量(foo)。哦!我几乎忘记了,我正在使用Vue

我已经通过本教程(https://blog.teamtreehouse.com/cross-domain-messaging-with-postmessage)尝试使用iframe。我尝试了一些诸如交叉存储(https://www.npmjs.com/package/cross-storage#overview)和biforst-cors(https://www.npmjs.com/package/bifrost-cors)之类的库,但是它们都没有按我预期的那样工作。我知道可以使用查询参数,但是我不能使用它

我有这个:

localStorage.clear()
window.localStorage.setItem('user', JSON.stringify(response.body.data) )                                                
window.localStorage.setItem('token', response.body.token)                                                
window.location.href = `http://localhost:8081/#/` //redirect 

基本上,我想在其他域中同时使用变量user和token。

如果有人可以帮助我带来想法或类似的东西,那将对我有很大帮助。

2 个答案:

答案 0 :(得分:0)

具有 Bifrost-cors 库的解决方案。 https://www.npmjs.com/package/bifrost-cors

您必须在两个域中都初始化lib。
在exampleA.com
var bifrostCors = new bifrostCors("http://exampleB.com/")
在exampleB.com
var bifrostCors = new bifrostCors("http://exampleA.com/")

那么您就可以使用
bifrostCors.setLocalStorage({key: "user", value: "persons"})

答案 1 :(得分:0)

另一种解决方案是:

var DifferentWindow=window.open("http://www.example.com/");
DifferentWindow.localStorage.setItem("Key","Value");

这是在简单的Javascript中,所以我希望它有帮助 它的作用是打开一个带有链接的新窗口,并将该窗口本地存储中的一个变量设置为“值”。