前后端分离,跨域问题

Posted bigbigxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前后端分离,跨域问题相关的知识,希望对你有一定的参考价值。

解决跨域问题

1. 什么是跨域

  1.1.不同域名的资源访问,存在跨域

  1.2.同一个域名不同端口的资源访问,也属于跨域

  1.3二级域名不同的资源访问,也属于跨域

只要域名(ip)和端口号有一样不同,那么都是跨域

   http://localhost:8080 前端系统 发送Ajax取后端系统获取数据

   http://localhost:80   后端系统

以上的两个地址也是跨域

 

2.跨域问题

跨域不一定会有跨域问题。

因为跨域问题是浏览器对于ajax请求的一种安全限制,也可以说是浏览器的同源策略

同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。

虽然说同源策略有效的防止了跨站攻击,但是给我们开发带来了不便。

3.跨域解决方案

目前比较常用的跨域解决方案有3种:

3.1,Jsonp(json的变种

3.2 ,nginx反向代理(部署)

 

 

3.3,CORS

规范化的跨域请求解决方案,安全可靠

 

优势:

 

  - 在服务端进行控制是否允许跨域,可自定义规则

 

  - 支持各种请求方式

 

  缺点:

 

  - 会产生额外的请求,要做询问

 

我们这里会采用cors的跨域方案。注意spring版本 修改 4.2.5

 

<spring.version>4.2.5.RELEASE</spring.version>

 

 

 

 

 

 

 

以上是关于前后端分离,跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

前后端分离架构下的跨域问题

Nginx 前后端分离及跨域问题

无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离

用nignx解决前后端分离跨域问题 - 每日一招

前后端分离项目知识汇总(开发流程,跨域,开发接口)

Spring Boot前后端分离跨域问题