栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CSRF 跨域

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CSRF 跨域

什么是跨域请求

当前端使用ajax获取数据的时候,如果当前页面的地址和所需要请求的服务器的地址 :

协议 域名 端口

任何一个不一样的时候就会产生跨域请求

跨域请求的表现

获取不到数据信息并且前端报跨域错误提示

跨域请求获取不到数据的原因

后端服务器接口数据以返回,但是浏览器不将数据返回给ajax中的success

如何处理跨域请求

在服务器端的Response Header中添加
Access-Control-Allow-Origin 的信息
例如在SpringCloud中项目中会把跨域配置全都配置在网关中,由网关统一管理

跨区请求和OPTIONS请求的关系

跨域请分为:

简单请求:
get post
非简单请求:
put delete 自定义的header信息

按上面"如何处理跨域请求" 中写的方法解决后,访问接口还是会出现

以上的options请求

因为所有非简单请求 在正式跨域的请求前,浏览器会根据需要,发起一个“PreFlight”(也就是Option请求),用来让服务端返回允许的方法(如get、post),被跨域访问的Origin(来源,或者域),还有是否需要Credentials(认证信息)

从这张图中我们可以看出,非简单请求在发送真正的请求前会发送一次Preflight Request,接收一个Preflight Response。(这也是Preflight恶心的地方)。

所以就需要服务器对options请求放行

比如在SpringCloud中项目中网关的跨域请求中添加
Access-Control-Allow-Headers

Access-Control-Allow-Methods

放行规则

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号