朝阳网站建设推广,北京市建设工程信息网如何登录,吉林市做网站的公司,华大 建设网站1、什么跨域 首先#xff0c;在前后端没有分离项目#xff0c;例如jsp、php#xff0c;前后台代码没有实现物理上的分离。不存在跨域问题。前后端分离后#xff0c;前后端的地址域名不同#xff0c;而同源策略导致浏览器会拦截a地址访问b地址请求#xff08;a地址通过浏览…1、什么跨域 首先在前后端没有分离项目例如jsp、php前后台代码没有实现物理上的分离。不存在跨域问题。前后端分离后前后端的地址域名不同而同源策略导致浏览器会拦截a地址访问b地址请求a地址通过浏览器访问b地址叫跨域COSR其中同源策略设计出于安全的考虑。前后分离之后就会产生跨域问题为了解决这个问题浏览器在发起跨域请求的时候会先发送一个预检请求option请求服务器通过设置CORS 来指定允许跨域请求并指定请求源以及方法 和 请求头等信息。
2、预检请求
需预检的请求要求必须首先使用 OPTIONS 方法发起一个预检请求到服务器以获知服务器是否允许该实际请求。预检请求 的使用可以避免跨域请求对服务器的用户数据产生未预期的影响。 Access-Control-Request-Method该字段是必须的用来列出浏览器的 CORS 请求会用到哪些 HTTP 方法 Access-Control-Request-Headers该字段是一个逗号分隔的字符串指定浏览器 CORS 请求会额外发送的头信息字段 access-control-allow-origin在上述例子中表示 https://xxx.cn 可以请求数据也可以设置为* 符号表示统一任意跨源请求 Access-Control-Max-Age 该字段可选用来指定本次预检请求的有效期单位为秒。在有效期间不用发出另一条预检请求
例如下面截图 3、跨域配置 如果你的前端是通过nginx 转发请求你的后端接口nginx也要配置跨域如下面截图 然后在后端项目中进行跨域配置
方法一、 实现WebMvcConfigurer 接口跨域配置的方法截图如下 方法二 、通过过滤器实现截图如下 方法三、通过注解实现如下截图 注解可以定义在方法和类可以实现最小颗粒度的控制。
方法四 、通过配置FilterRegistrationBean实现截图如下 此方法是通过配置spring过滤器实现而不是servlet