如何在IOS浏览器中设置网站cookies?
Posted
技术标签:
【中文标题】如何在IOS浏览器中设置网站cookies?【英文标题】:How to set website cookies in IOS browser? 【发布时间】:2014-02-21 16:30:45 【问题描述】:如果用户未登录,我有一个使用 javascript cookie 进行重定向的网站。但是当您使用 iPad 或 iPhone 访问我的网站时,您将无法进入登录页面,因为 ios 浏览器默认阻止/禁用 cookie .
我搜索了解决方法并找到了这些set Cookie manually using HTTPCookiestorage
Where are an UIWebView's cookies stored?
但首先,我不知道如何使用它。我已经阅读了,但我仍然不清楚如何将 cookie 设置为 IOS 浏览器,以便用户可以查看我的网站。
谁能帮助/指导我如何使用它?我在我的代码上使用 javascript。它只是一个网站而不是应用程序。
非常感谢!
【问题讨论】:
为什么不使用 localStorage 、 sessionStorage 或 webSQL? @cocco 感谢您的回答。我尝试使用本地存储。但我的网站上有 3 个文件夹,其中有 3 个不同的登录名和登录页面。我可以为每个使用 3 个不同的 localStorage 吗? @cocco 这是我使用 localStorage 的代码。我不太了解 webSQL 和 sessionStorage。您能否检查我的代码,如果满足条件,它应该重定向。这没有发生。再次感谢 我看不到代码...但是您可以创建 3 个不同的 localStorage 变量...有时我将 localStorage 与 JSON.parse 和 JSON.stringify 结合使用...所以我的 localstorage 值可以包含对象和数组。反正我看不到你的代码。 index.html<script> localStorage.setItem('count', '1'); localStorage.count = '1'; localStorage.pageLoadCount == 1; if (localStorage.pageLoadCount == 0) location.href="pathhere/loginios.html" localStorage.pageLoadCount = parseInt(localStorage.pageLoadCount) + 1; localStorage.count = localStorage.pageLoadCount; </script>
【参考方案1】:
为每个目录使用本地存储...
这就是我的意思:
var dir1=localStorage['dir1']? // if localstorage for dir1 exists
JSON.parse(localStorage['dir1']): // use localstorage value else
count:1,pageLoadCount:1; // set count to 1 and pagecount to 1
if(dir1.pageLoadCount==0)// will never happen :)
//localStorage['dir1']=whatever set the storage to something before pagechange
location.href="pathhere/loginios.html";
else
dir1.pageLoadCount++;
dir1.count=dir1.pageLoadCount;
localStorage['dir1']=JSON.stringify(dir1);// set localStorage
然后 dir2 的类似/相同脚本
编辑
var defaultInfo=[
folder:'folder1',count:1,pageLoadCount:1,
folder:'folder2',count:1,pageLoadCount:1,
folder:'folder3',count:1,pageLoadCount:1,
],
data=localStorage['data']?JSON.parse(localStorage['data']):defaultInfo;//load
console.log(data);
//do stuff
localStorage['data']=JSON.stringify(data);//store
演示
http://jsfiddle.net/qcuhD/1/
编辑
登录
localStorage['data']=JSON.stringify(logedIn:1)
登录检查
if(localStorage['data'])
var data=JSON.parse(localStorage['data']);
if(data.logedIn==1)
//OK
else
// not logged in
else
// not logged in
【讨论】:
感谢您与我分享。我现在就试试,然后回复你。你能帮我等一下吗?我应该创建['dir1']
文件夹吗?喜欢['www.mysite.com/folder1']
你可以但是...使用一个简单的变量名,比如 folder1
我在这行有错误count:1,pageLoadCount:1;
var dir1=localStorage['dir1']?JSON.parse(localStorage['dir1'])||count:1,pageLoadCount:1;应该是一行。
var folder1 = "http://example.com/test/"; var dir1=localStorage['folder1']?JSON.parse(localStorage['folder1'])||count:1,pageLoadCount:1; if(dir1.pageLoadCount==0) //localStorage['dir1']=whatever???? location.href="http://example.com/test/login.html"; dir1.pageLoadCount++; dir1.count=dir1.pageLoadCount; localStorage['dir1']=JSON.stringify(dir1);
以上是关于如何在IOS浏览器中设置网站cookies?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Phonegap iOS 的 document.cookie 中设置域?
你如何在 PHP 中设置使用 HttpOnly cookie