什么是跨域?
跨域是浏览器的同源策略导致不能向其他域发送异步请求。
比如,目前浏览器访问的域名是www.baidu.com,但是目前存在前后端分离设计,浏览器请求到前端的页面后,由于页面向后端(其他域)发送了请求而产生了跨域的问题。
同源策略
同源:协议、端口号、主机三者相同则为同源
举例:目前浏览器访问http://192.168.200.128:8080页面,这个页面发送异步请求到以下地址,判断是否跨域。
https://192.168.200.128:8080 跨域:协议不同
http://192.168.200.127:8080 跨域:主机号不同
https://192.168.200.128:8081 跨域:端口不同
https://192.168.200.128:8080/search 不跨域:满足同源策略
如何解决?
采用CORS
需要浏览器和服务端都支持。
浏览器:IE10以上
本质是在请求头上加入一个参数。
浏览器与服务器交互的过程是
服务器需要做的是:
以Java为例:需要SpringMVC的版本在4.2以上并且在Controller层上加上@CrossOrigin注解即可。