欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

跨域访问

程序员文章站 2022-07-10 10:38:46
...

跨域访问

•跨域访问技术

CORS:Cross-Origin Resource Sharing

•同源策略:

Same-origin Policy

在一个浏览器中访问的网站不能访问另一个网站中的数据,除非这两个网站具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。

•浏览器默认

只能访问同源资源,不能访问非同源资源,否则被拒绝。

•解决跨越问题

客户端不需要更改任何数据访问逻辑,一般是服务器解决。所有的一切工作都是在服务端及浏览器之间自动完成的通过

•跨域问题

跨域访问

•解决跨域问题

后端:

<!--在spring配置文件中配置-->
<!--支持跨域-->
    <mvc:cors>
        <mvc:mapping path="/**"
                     allowed-origins="http://localhost:83"
                     allowed-methods="GET, PUT,OPTIONS,POST,DELETE"
                     allow-credentials="true"
                     max-age="3600" />
    </mvc:cors>

<!--
	浏览器会向所请求的服务器发起两次请求,第一次是浏览器使用OPTIONS方法发起一个预检请求,第二次才是真正的异步请求,第一次的预检请求获知服务器是否允许该跨域请求:如果允许,才发起第二次真实的请求;如果不允许,则拦截第二次请求。
         allowed-origins: 允许的远程
         allowed-methods: 允许的请求方式
         max-age: 用来指定本次预检请求的有效期,单位为秒,在此期间不用发出另一条预检请求
         allow-credentials: 请求是否带cookie信息
-->

携带cookie的目的:当用户登录后,web服务器会产生认证cookies,并通过http响应的set-cookie发送给客户端,用于对用户随后的请求检查和验证。用户在试图访问站点中需要认证的资源时,服务器会检查用户是否提供了认证cookie

前端:

跨域访问

axios.defaults.withCredentials = true;

因为,axios和ajax请求不会自动携带cookie信息,需要配置该参数,携带cookie请求服务器

欢迎各位大佬进行指正批评!!

相关标签: 跨域学习 java