跨域访问
程序员文章站
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请求服务器
欢迎各位大佬进行指正批评!!
推荐阅读
-
C#访问C++动态分配的数组指针(实例讲解)
-
Mysql允许外网访问设置步骤
-
ASP.NET MVC 3实现访问统计系统
-
ASP.NET MVC4入门教程(五):从控制器访问数据模型
-
Spring之借助Redis设计一个简单访问计数器的示例
-
Spring boot跨域设置实例详解
-
Android开发之浏览器用法实例详解(调用uc,opera,qq浏览器访问网页)
-
C#如何通过匿名类直接使用访问JSON数据详解
-
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
-
Python 如何访问外围作用域中的变量