同源策略
规定:浏览器要求在解析Ajax请求时,要求浏览器的路径与Ajax的请求的路径必须满足三个要求则满足同源策略.可以成功访问服务器.
三个要求:请求的协议://域名:端口号 都必须相同!!!
要素:1.浏览器的请求路径 2.Ajax请求的网址
同源策略的案例
案例一:
1.浏览器地址 http://localhost:8080/findAll
2.Ajax请求地址 http://localhost:8080/aaaa
满足同源策略.服务器可以正常访问
案例二:
1.浏览器地址 http://localhost:8090/findAll
2.Ajax请求地址 http://localhost:8080/aaaa
不满足同源策略. 端口号不同,属于跨域请求
案例三:
1.浏览器地址 http://localhost:8080/findAll
2.Ajax请求地址 https://localhost:8080/aaaa
不满足同源策略. 请求协议不同,属于跨域请求
案例四:
前提:IP与域名映射
1.浏览器地址 http://www.baidu.com/findAll
2.Ajax请求地址 http://10.0.1.1/aaaa
不满足同源策略,域名不同
案例五:
1.浏览器地址 http://10.0.1.1:80/findAll
2.Ajax请求地址 http://10.0.1.1/aaaa
满足同源策略.服务器可以正常访问 域名10.0.1.1的默认端口号就是80
案例六:
1.浏览器地址 https://10.0.1.1:443/findAll
2.Ajax请求地址 https://10.0.1.1:443/aaaa
满足同源策略.服务器可以正常访问
什么是跨域?
违反了同源策略的请求就是跨域的请求
跨域的解决方案
JSONP(了解)
JSONP(JSON withPadding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般说位于server1.example.com的网页无法与不是server1.example.com的服务器沟通,而HTML的核心用法:利用返回值与法固定的:callback(JSON数据)
CORS方式
说明:CORS(Cross-origin resource sharing) "跨域资源共享",现在的主流的浏览器都支持cors的方式.如果需要跨域,则需要配置响应头信息.表示是否允许.
一般在项目的controller类中加入注解@CrossOrigin