如何允许跨域

本文介绍了如何在SpringBoot应用中使用CorsConfiguration类实现跨域资源共享(CORS),包括配置允许的头信息、方法以及指定哪些路径允许跨域。详细解释了UrlBasedCorsConfigurationSource的作用和示例配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Configuration
public class CorsConfiguration {

    @Bean
    public CorsWebFilter corsWebFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration configuration = new CorsConfiguration();
        // 配置跨域的信息
        configuration.addAllowedHeader("*");
        configuration.addAllowedMethod("*");
        // 这里可以设置哪些路径拥有跨域的权限,这里是放开所有,eg:https://foo.example
        configuration.addAllowedOriginPattern("*");
        configuration.setAllowCredentials(true);
        source.registerCorsConfiguration("/**",configuration);
        return new CorsWebFilter(source);
    }

这个是Origin的相关介绍

详细网址请看跨源资源共享(CORS) - HTTP | MDN http访问控制

### 如何在Chrome中配置允许访问的解决方案 解决浏览器中的问题可以通过多种方式实现,其中包括使用浏览器扩展、修改浏览器设置以及服务端配置等方法。以下是具体的解决方案: #### 1. 使用 Chrome 扩展程序 Requestly Requestly 是一款功能强大的 Chrome 插件,可以用来解决问题。安装和配置步骤如下: - 在 Chrome 应用商店中搜索 `Requestly` 并添加到扩展程序[^1]。 - 安装完成后,启用插件并配置规则以允许请求。 #### 2. 修改 Chrome 的扩展权限 如果在下载或使用扩展程序时遇到问题,可以尝试调整 Chrome 的扩展权限设置: - 访问 `chrome://flags/#extensions-on-chrome-urls` 页面。 - 将 Extensions 的权限更改为 `Enabled`[^3]。 #### 3. 配置服务端 CORS 支持 除了客户端的解决方案,服务端也可以通过配置 CORS 头来允许请求。常见的做法包括: - 设置响应头 `Access-Control-Allow-Origin`,例如:`Access-Control-Allow-Origin: *`[^2]。 - 如果需要更精细的控制,可以指定特定的名而不是使用通配符。 #### 4. 使用命令行启动 Chrome 并禁用安全策略 在开发环境中,可以通过命令行参数禁用 Chrome 的同源策略限制: ```bash chrome --disable-web-security --user-data-dir ``` 需要注意的是,这种方式仅适用于开发和调试环境,不建议在生产环境中使用。 #### 5. JSONP 方式(适用于 GET 请求) JSONP 是一种绕过限制的方式,但仅支持 GET 请求。其基本原理是通过 `<script>` 标签加载远程资源,并通过回调函数处理返回的数据[^2]。 ```javascript function handleResponse(data) { console.log(data); } const script = document.createElement('script'); script.src = 'https://example.com/api?callback=handleResponse'; document.body.appendChild(script); ``` ### 注意事项 - 问题是由浏览器的安全机制(同源策略)引起的,因此解决方法通常涉及修改浏览器设置或服务端配置。 - 在生产环境中,推荐优先使用服务端 CORS 配置,而不是依赖客户端的修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值