

Springboot CORS跨域访问
source link: http://www.cnblogs.com/undefined22/p/12603553.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Springboot CORS跨域访问
什么是跨域
浏览器的同源策略限制: 它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)
当一个请求url的 协议、域名、端口 三者之间任意一个与当前页面url不同即为跨域
举例:
当前页面url 被请求页面url ** 是否跨域** 原因 http://www.test.com/ http://www.test.com/index.html 否 同源(协议、域名、端口号相同) http://www.test.com/ https://www.test.com/index.html 跨域 协议不同(http/https) http://www.test.com/ http://www.baidu.com/ 跨域 主域名不同(test/baidu) http://www.test.com/ http://blog.test.com/ 跨域 子域名不同(www/blog) http://www.test.com:8080/ http://www.test.com:7001/ 跨域 端口号不同(8080/7001)跨域的限制
【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
【2】无法接触非同源网页的 DOM
【3】无法向非同源地址发送 AJAX 请求
基于Springboot搭建CORS跨域访问
基于SpringBooot项目搭建可以站外Ajax请求访问的跨域资源服务器。
方法一:
在每个controller上添加 @CrossOrigin
其中@CrossOrigin中的2个参数:
origins: 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。
未加@CrossOrigin:
@RestController @RequestMapping("/test") public class TestRequestLogController { @RequestMapping("/request_log") public String TestRequestLog(@RequestParam String name){ return "hello " + name; } }
加@CrossOrigin:
方法二:
@Configuration public class CorsConfig { private CorsConfiguration corsConfiguration(){ CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod(HttpMethod.GET); corsConfiguration.addAllowedMethod(HttpMethod.POST); corsConfiguration.addAllowedOrigin("*"); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration()); return new CorsFilter(urlBasedCorsConfigurationSource); } }
Recommend
-
82
跨域资源共享(Cross-Origin Resource Sharing)是一种机制,它使用额外的 HTTP 头部告诉浏览器可以让一个web应用进行跨域资源请求。 请求类型 简单请求 若一个请求同时满足下述所有条件,则该请求可视为“简单请求”(注:灰色字体内容
-
17
我们通常提到跨域问题的时候,相信大家首先会想到的是 CORS (跨源资源共享),其实 CORS 只是众多跨域访问场...
-
9
Django 通过设置 CORS 解决跨域问题 一、Ajax 跨域请求Ajax 请求一个目标地址为非本域(协议、主机、端口任意一个不同)的 web 资源。 前端http://192.168.10.50:8080 后端
-
11
源代码探案系列之 .NET Core 跨域中间件 CORS2021-03-1632 25 min.本文是 #源代码探案系列# 第三篇,今天这篇博客,我们来一起解读下 ASP.NET Core 中的
-
5
11 April 2020 / 开发笔记 Nginx 配置允许跨域访问 CORS 原文地址: https://en...
-
9
什么是跨域资源共享呢? 我们知道一个域是由scheme、domain和port三部分来组成的,这三个部分可以唯一标记一个域,或者一个服务器请求的地址。跨域资源共享的意思就是服务器允许其他的域来访问它自己域的资源。CORS是一个基于HTTP-header检测的机制,本文...
-
9
利用跨域资源共享(CORS)实现ajax跨域调用 浏览:3024次 出处信息 前几天看了一篇E文说部署CORS
-
8
nginx开启跨域CORS 2022-02-08 字数统计: 268字
-
8
转载——跨域资源共享CORS浅析及便捷解决方案转载——跨域资源共享CORS浅析及便捷解决方案跨源资源共享 (CORS) (或通俗地译为跨域资源共享)是一种基于HTTP 头的机制,该机制通过允许服务器标示除了它自己以外的其它origin(域,协...
-
10
浏览器跨域请求的机制:CORS-51CTO.COM 浏览器跨域请求的机制:CORS 作者:前端西瓜哥 2022-04-29 09:11:14 CORS 真正的形态是非简单请求,它不会立即发送真正的请求,而是额外发送 OP...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK