前后端分离,跨域问题

Linkaibin 2019-12-07

解决跨域问题

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>

相关推荐