跨域
定义
跨域是指跨域名的访问,当一个系统访问另一个系统就有可能会出现跨域问题。
出现原因
是浏览器对于ajax请求的一种安全限制
域名不同,端口不同,二级域名不同。这三种满足任意一种都会出现跨域问题
解决方式
- Jsonp-- json变种
- nginx反向代理(部署)
- CORS(都可以使用-采纳)
Jsonp-- json
将请求填充再标签(src或img)中
<sccipt src=”http:/wwww/ssss”>
缺点
需要浏览器支持,并且只支持get请求.
nginx
nginx可以将外部请求做反向代理,转化为内部请求。但可以支持各种请求方式
缺点
需要在nginx进行额外配置,语义不清晰
CORS(推荐)
在服务端进行控制是否允许跨域,可自定义规则。 支持各种请求方式
Spring4.2.5之后支持使用注解:@CrossOrigin
缺点
会产生额外的请求,要做询问。