一、通过nginx反向代理

通过nginx反向代理后,使得浏览器认为访问的资源都是属于相同协议,域名和端口的。

详细见:《nginx实现跨域访问》

二、jsonp方式请求

v  jquery请求跨域:

JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的 jquery.ajax jsonp格式和jquery.getScript方式。

v  jsonp格式:

如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。意思就是远程服务端需要对返回的数据做下处理,根据客户端提交的callback的参数,返回一个callback(json)的数据,而客户端将会用script的方式处理返回数据,来对json数据做处理。JQuery.getJSON也同样支持jsonp的数据方式调用。

v  场景模拟:

  两个工程web1, web2, 部署在本地同一台机器上的不同tomcat上,端口分别是8080和8089。

  web2/index.html内容如下:

  

   web2/cooke.jsp内容如下:

  

 

  web1/index.html内容如下:

  

  

  测试流程,首先通过谷歌浏览器访问http://localhost:8089/web2/index.html,F12,Network视图,查看内容如下:

  

  

  或者通过浏览器设置->显示高级设置->隐私设置来查看写入的cookie,过程如下。

   

    

  接着,打开另一个窗口,访问http://localhost:8080/web1/index.html,这个页面是请求web2工程写入的cookie(注意,如果我们不是通过jsonp方式去访问,那么浏览器就会出现 不允许跨域访问 的提示)。同样 F12, Network视图,查看返回的数据如下。

  

  

  

  

  至此,通过jsonp方式的请求完成cookie跨域携带,也就是web1工程成功拿到了web2工程目录下的cookie。可以发现,jsonp会通过回调函数来处理服务器端返回的数据,因为返回的可以执行的js代码(也就是重写cookie的path和域),然后自动执行返回的js代码,从而达到目的。

三、解决cookie跨域问题之nodejs superagent

  package.json中的模块依赖:

  

  调用superagent api请求:

  

四、同一域下,不同工程下的cookie携带问题

  cookie跨域访问之后,可以成功的写入本地域。本地的前端工程在请求后端工程时,有很多是ajax请求,ajax默认不支持携带cookie,所以现在有以下两种方案:

(1). 使用jsonp格式发送
(2). 
ajax请求中加上字段 xhrFields: {withCredentials: true},这样可以携带上cookie

      

      

       这样后台配置就出现了限制,需要配置一个解决跨域访问的过滤器,而且header字段Access-Control-Allow-Origin的值不能为"*", 必须是一个确定的域。

      

转载于:https://www.cnblogs.com/duanxz/p/3376719.html

cookie跨域问题汇总相关推荐

  1. ASP.NET的Cookie跨域问题

    将Cookie的有效范围限制到域.  默认情况下,Cookie 与特定的域相关联. 例如,如果您的站点是   www.contoso.com,那么当用户向该站点请求页面时, 您编写的Cookie就被发 ...

  2. 解决cookie跨域访问

    v一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入 ...

  3. 实现cookie跨域

    实现cookie跨域

  4. cookie 跨域问题

    cookie 跨域访问 一. 前言 随着项目模块越来越多 ,很多模块现在都是独立部署, 模块之间的交流有事可能会通过cookie完成 , 比如说门户和应用部署在不同的机器或者web容器中 , 假如用户 ...

  5. Iframe和Frame中实现cookie跨域的方法(转载)

    在Iframe和Frame中默认是不支持Cookie跨域的,但通过设置P3P协议相关的响应头可以解决这一问题. 关于p3p协议: P3P: Platform for Privacy Preferenc ...

  6. cookie跨域,实现单点登录

      Cookie 跨域,实现单点登录 Table title                         最近在做一个单点登录的系统整合项目,之前我们使用控件实现单点登录(以后可以介绍一下).但现 ...

  7. 请求跨域设置同时允许cookie跨域(携带cookie)

    最近做一个前后端分离的项目,后台.Net 进行开发,使用session来进行身份验证.发现调用接口的时候总是显示未登录,经过检查发现每次请求过去的sessionid是不一样的,导致服务器找不到之前登陆 ...

  8. axios库读不到cookie_axios中cookie跨域及相关配置示例详解

    自从入了vue之后,一直在用axios这个库来做一些异步请求,下面这篇文章主要介绍关于axios中cookie跨域及相关配置的资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴. 前言 最近 ...

  9. 实现cookie跨域共享的两种方式

    目录 跨域概念 为何限制跨域? 如何安全跨域?(如何实现跨域主要参考这里) 如何实现cookie跨域共享? cookie的概念 cookie的特性 跨多域共享cookie( a.com和b.com共享 ...

  10. axios跨域携带cookie_axios中cookie跨域及相关配置示例详解

    前言 最近在跨域.cookie 以及表单上传这几个方面遇到了点小问题,做个简单探究和总结.本文主要介绍了关于axios中cookie跨域及相关配置的相关内容,下面话不多说了,来一起看看详细的介绍吧. ...

最新文章

  1. java基本类型转换,随记
  2. 性能优化篇(4):千万别使用CSS表达式
  3. 深度模型中的梯度消失和梯度爆炸
  4. Docker 拉取镜像慢解决
  5. Docker生态技术链
  6. 隐马尔可夫模型HMM学习备忘
  7. CSS 自定义滚动条样式
  8. 导线怎么用计算机平差,导线平差计算软件
  9. 小述银行软开~~(转)
  10. 神经网络可以解决的问题,神经网络修复老照片
  11. Redis5.0集群搭建(三主三从)、添加一主一从、JedisCluster连接集群
  12. Presenting view controllers on detached view controllers 警告根由
  13. Android 找不到符号错误
  14. SpringMVC的 transferTo使用
  15. three.js 后期处理通道postprocessing
  16. 哈哈哈,假如计算机是中国人发明的,那代码应该这么写
  17. 图灵杯 蔡老板的会议
  18. 长沙有哪些比较有名的互联网公司?
  19. JAVA SE8 OCA/OCP和PL/SQL OCA/OCP认证书籍推荐
  20. 网页内容高度不够时,让footer处于页面底部的方法(不是固定在底部)

热门文章

  1. linux mysql5.7.12安装图解_centos 安装 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 详细步骤
  2. [Vue warn]: Error in render: “TypeError: Cannot read properties of undef
  3. idea2019配置
  4. Collections 常用方法
  5. L2-007 家庭房产 (25分)
  6. 阿里云ddns解决动态IP问题
  7. 常用liunx / mysql命令
  8. MS SQL 表字段增加,删除,修改
  9. 牛客NOIP暑期七天营-普及组1 解题报告
  10. Java中为什么使用事务?什么时候使用事务?如何使用事务?