localStorage 跨域訪問
如果兩個頁面的主域名相同,那麼只要進行如下設定即可實現跨域訪問LocalStorage:
[JavaScript] 純文字檢視 複製程式碼document.domain = 'softwhy.com';
將document.domain屬性值設定為根域名。
關於document.domain參閱JavaScript 跨域訪問cookie一章節。
域名完全不相同的話,可以通過window.postMessage(),讀寫其他視窗的LocalStorage。
a.com下頁面通過iframe插入了b.com下的一個頁面,a.com下頁面程式碼如下:
[JavaScript] 純文字檢視 複製程式碼var iframeWin = document.getElementsByTagName('iframe')[0].contentWindow; var obj = { webName: "螞蟻部落" }; iframeWin.postMessage(JSON.stringify({ key: "storage", data: obj }), "http://b.com");
以上程式碼可以向b.com域下的頁面傳送資料。
[JavaScript] 純文字檢視 複製程式碼window.onmessage = function(event) { if (event.origin !== 'http://b.com') { return; } var payload = JSON.parse(event.data); localStorage.setItem(payload.key, JSON.stringify(payload.data)); };
以上程式碼可以接收http://a.com域下頁面傳送的資料。
關於postMessage()方法和message事件可以參閱一下兩篇文章:
(1).postMessage()參閱JavaScript postMessage() 方法一章節。
(2).message可以參閱JavaScript message 事件一章節。
相關文章
- 跨源通訊、跨域訪問跨域
- iframe 元素跨域訪問跨域
- 同源策略和跨域訪問跨域
- Laravel API 允許跨域訪問LaravelAPI跨域
- 解決JS跨域訪問的問題JS跨域
- vue_cli3.x 跨域訪問Vue跨域
- springboot配置CORS允許跨域訪問Spring BootCORS跨域
- spring boot解決跨域訪問配置Spring Boot跨域
- 防止跨域問題無法訪問網址跨域
- 阿里雲圖片跨域訪問設定阿里跨域
- Angular應用解決跨域訪問的問題Angular跨域
- Nginx解決前端訪問資源跨域問題Nginx前端跨域
- 跨域問題(普通跨域和springsecurity跨域)跨域SpringGse
- 解決Django本地介面不能跨域訪問的問題Django跨域
- JavaScript 跨域訪問(API介面)實現原理分析JavaScript跨域API
- PHP 設定多域名允許跨域訪問PHP跨域
- 跨域訪問是什麼!怎麼解決?跨域
- 跨域問題跨域
- 分享跨域訪問的解決方案與基礎分析跨域
- 搞懂:前端跨域問題JS解決跨域問題VUE代理解決跨域問題原理前端跨域JSVue
- 詳解瀏覽器跨域訪問的幾種辦法瀏覽器跨域
- AJAX 跨域問題跨域
- djangorestjwtvue跨域問題DjangoRESTJWTVue跨域
- VUE跨域問題Vue跨域
- 前端跨域問題前端跨域
- springboot 跨域問題Spring Boot跨域
- Nginx跨域問題Nginx跨域
- js -- 跨域問題JS跨域
- 【Thinkphp6】api介面使用apipost等工具可以正常訪問,專案中訪問報跨域問題PHPAPI跨域
- 深入跨域問題(3) – 利用 JSONP 解決跨域跨域JSON
- 深入跨域問題(3) - 利用 JSONP 解決跨域跨域JSON
- 深入跨域問題(4) - 利用代理解決跨域跨域
- 深入跨域問題(2) - 利用 CORS 解決跨域跨域CORS
- Nginx解決前端跨域問題 CORS跨域配置Nginx前端跨域CORS
- 深入跨域問題(4) – 利用代理解決跨域跨域
- SpringMVC+RestFul詳細示例實戰教程(實現跨域訪問)SpringMVCREST跨域
- 什麼是瀏覽器跨域訪問操作?JS如何實現?瀏覽器跨域JS
- 跨域問題及Umi中使用proxy代理解決跨域問題跨域