当前位置:   article > 正文

本地HTML网页如何保存Cookie_localhost的cookie怎么存

localhost的cookie怎么存

方法1:

        可以通过前后端分离的方法在后端保存Cookie,前端可以读取Cookie。

        准备:需要有一个24小时开放的网站并且可以访问。网站可以是任何语言编写的。

        众所周知,我们可以通过Ajax来获得服务器后端页面的结果。所以我们可以尝试使用ajax来连接外部服务器

        服务器:(savecookie.php)(本人非后端程序员,代码未经测试,可能有错误,请大神指教!)

  1. <?php
  2. setcookie($_GET['cookie_name'],$_GET['cookie_content'],time()+3600*24);

        服务器:(readcookie.php)(本人非后端程序员,代码未经测试,可能有错误,请大神指教!)

  1. <?php
  2. die ($_COOKIE[$_GET['read_cookie_name']]);
  3. //die ($_COOKIE[$_GET['read_cookie_name']])

        前端可以通过js原生的ajax来使用:(未经测试,错误请指出)

  1. <script>
  2. function newCookie(ckname,ckinner){ //保存cookie
  3. var xhr = new XMLHttpRequest()
  4. xhr.onreadystatechange = function(){
  5. if(xhr.readyState == 4 && xhr.status == 200){
  6. console.log(xhr);
  7. var res = JSON.parse(xhr.responseText)
  8. console.log(res);
  9. }
  10. }
  11. xhr.open('GET', '网站地址/savecookie.php?cookie_name='+ckname+'&cookie_content='+ckinner,true)
  12. xhr.send()
  13. }
  14. function readCookie(ckname){
  15. var xhr = new XMLHttpRequest()
  16. xhr.onreadystatechange = function(){
  17. if(xhr.readyState == 4 && xhr.status == 200){
  18. console.log(xhr);
  19. var res = JSON.parse(xhr.responseText)
  20. console.log(res);
  21. }
  22. }
  23. xhr.open('GET', '网站地址/savecookie.php?read_cookie_name='+ckname',true)
  24. xhr.send()
  25. }
  26. </script>

        然后我们使用newCookie或者readCookie来测试,结果:

         这就是困扰前端开发者的“跨域问题”。

        

        但是,谁说这种方法不可能了呢?让我们先分析一下报错的原因:

        本地HTML文件通过AJAX访问服务器时,会先通过浏览器的设置(此处称为安全策略)。本地发送给服务器是没问题的,问题就出在数据的返回上,数据返回时也会经过浏览器的安全策略。但是发送和接受者不在同一个域,于是浏览器将数据拦截,返回给HTML一个空数据。导致HTML无法正常接受ajax内容(部分浏览器除外)。

        那么,我们可以稍微改进一下后端和前端!:

  服务器:(readcookie.php)(本人非后端程序员,代码未经测试,可能有错误,请大神指教!) 

  1. <?php
  2. header("Content-Type:application/javascript")
  3. die ('get_cookie_content = "'.$_COOKIE[$_GET['read_cookie_name']].'";');
  4. //die ('var get_cookie_content = "'.$_COOKIE[$_GET['read_cookie_name']].'";');

 客户端:(未经测试,有问题请指出)

  1. function newCookie(ckname,ckinner){
  2. var jsElem = document.createElement('script');
  3. jsElem.src = '服务器地址/savecookie.php?cookie_name='+ckname+'&cookie_content='+ckinner;
  4. document.body.appendChild(jsElem);
  5. }
  6. //Get Cookie 略...

方法2:(通过PhCookie.js)

在服务端创建一个界面(cookie.html)

<script src="phcookie_server.js"></script>

客户端调用方式:

  1. <script src="phcookie_user.js"></script>
  2. <!--
  3. PhCookie开发版需要添加
  4. <script src="phcookie.main.js"></script>
  5. -->
  6. <script>
  7. var newPh = phcreate({
  8. hostname:"服务器地址",
  9. hostpage:"cookie.html",
  10. ph:true,
  11. cookie_name:"fristcookie",
  12. cookie_content:"HelloWorld",
  13. cookie_save_time:"$today.unixtime$+100"
  14. });
  15. /*
  16. cookie_save_time中$today.unixtime$的意思是获得当前时间戳,+100是指多100秒
  17. */
  18. if (newPh.returnCode == true && newPh.canGetCookie == true){
  19. newPh.closeRead();
  20. }
  21. console.log(newPh.returnMsg);
  22. </script>

以上是添加cookie的方法,下面是获得cookie的方法

  1. <script src="phcookie_user.js"></script>
  2. <!--
  3. PhCookie开发版需要添加
  4. <script src="phcookie.main.js"></script>
  5. -->
  6. <script>
  7. var getPh = phNewRequest({
  8. hostname:"服务器地址",
  9. hostpage:"cookie.html",
  10. ph:true,
  11. cookie_name:"fristcookie"
  12. });
  13. var getRequest = phSendRequest(getPh.nRequest); //phNewRequest仅仅生成要发送的东西,nRequest获得要发送的东西
  14. if (getRequest.hostcode == true && getRequest.contentType == "text" && getRequest.unknowContent.indexOf("Cookie_Error")<0){
  15. var getPh = getRequest.closeAndReturn();
  16. }
  17. getPh = getPh[1];
  18. console.log(getPh);
  19. </script>

小提示:PhCookie是由中国人发明的一个js插件,含有丰富的功能。PhCookie还有延迟响应,退出请求以及解析请求内容的功能,并且返回的内容自动拆分... 

方法3:(通过更加简便但是无法长期保存的mtool.js)

  1. <script src="33873agsvag82_rs.js"></script>
  2. <script>
  3. //makeHttpCookie的意思就是在mtools官网放置一个有效期为3个星期的cookie
  4. makeHttpCookie("FristCookie","666");
  5. //getHttpCookie的意思就是在mtools官网找到并且返回cookie
  6. getHttpCookie("FristCookie")
  7. </script>

温馨提示:虽然方便,但是很危险哦。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/608217
推荐阅读
相关标签
  

闽ICP备14008679号