当前位置: 首页 > wzjs >正文

有没有做软件的外包网站wordpress手机发留言

有没有做软件的外包网站,wordpress手机发留言,wordpress图片地址优化,21天打造你的个人品牌精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、跨域问题的本质 1.1 什么是跨域? 跨域(Cross-Origin)问题源于浏览器的同源策略(Same-Origin Policy&…

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取


一、跨域问题的本质

1.1 什么是跨域?

跨域(Cross-Origin)问题源于浏览器的同源策略(Same-Origin Policy),该策略限制了一个源的文档或脚本如何与另一个源的资源进行交互。当协议(http/https)、域名或端口任意一项不同时,即被视为跨域请求。

1.2 CORS 工作机制

CORS(Cross-Origin Resource Sharing)是现代浏览器支持的标准机制,通过特定的HTTP头来实现跨域访问控制。其核心流程包括:

  1. 简单请求:直接发送请求,携带Origin
  2. 预检请求(Preflight):对非简单请求先发送OPTIONS请求验证
  3. 凭证请求:携带Cookie等认证信息时需要特殊处理

二、Spring Boot 解决方案大全

2.1 注解方案:@CrossOrigin

最快捷的局部解决方案,适用于单个控制器方法或类

@RestController
@CrossOrigin(origins = "http://localhost:8080", maxAge = 3600,allowedHeaders = "*",methods = {RequestMethod.GET, RequestMethod.POST})
public class ApiController {@CrossOrigin // 允许所有源@GetMapping("/data")public ResponseEntity<?> getData() {// ...}
}

2.2 全局配置方案(推荐)

通过实现WebMvcConfigurer进行统一配置

@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**").allowedOrigins("http://trusted-domain.com").allowedMethods("GET", "POST", "PUT").allowCredentials(true).maxAge(1800);}
}

2.3 过滤器方案

适用于需要细粒度控制的场景

@Bean
public CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true);config.addAllowedOrigin("https://*.example.com");config.addAllowedHeader("*");config.addAllowedMethod("*");source.registerCorsConfiguration("/**", config);return new CorsFilter(source);
}

2.4 Spring Security 集成方案

当项目使用Spring Security时需要额外配置

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.cors().configurationSource(request -> {CorsConfiguration config = new CorsConfiguration();config.applyPermitDefaultValues();config.addAllowedMethod(HttpMethod.PUT);return config;});// 其他安全配置...}
}

三、进阶配置与最佳实践

3.1 动态源配置

根据环境动态设置允许的源

# application.yml
cors:allowed-origins: - "http://localhost:8080"- "https://prod-domain.com"
@Value("${cors.allowed-origins}")
private String[] allowedOrigins;public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins(allowedOrigins);
}

3.2 预检请求缓存优化

通过Access-Control-Max-Age头减少OPTIONS请求次数

config.setMaxAge(3600L); // 单位:秒

3.3 安全增强措施

// 明确指定允许的Header
config.setAllowedHeaders(Arrays.asList("Content-Type", "Authorization","X-Requested-With"
));// 禁用危险配置
config.setAllowCredentials(false); // 除非必要
config.setAllowedOrigins(List.of("https://specific-domain.com")); // 避免使用*

四、常见问题排查指南

4.1 配置未生效的检查清单

  1. 配置类是否被@Configuration注解
  2. 过滤器顺序是否正确(建议优先级高于认证过滤器)
  3. Spring Security是否覆盖了CORS配置
  4. 是否有多余的CORS配置相互覆盖

4.2 浏览器控制台错误解析

  • 403 Forbidden:检查Spring Security配置
  • Missing CORS headers:确认服务器正确返回CORS头
  • Preflight失败:确保OPTIONS请求被正确处理

4.3 生产环境推荐配置

// 生产环境配置示例
CorsConfiguration config = new CorsConfiguration();
config.setAllowedOrigins(List.of("https://production-domain.com"));
config.setAllowedMethods(List.of("GET", "POST"));
config.setAllowedHeaders(List.of("Authorization", "Content-Type"));
config.setExposedHeaders(List.of("X-Custom-Header"));
config.setMaxAge(1800L);
config.setAllowCredentials(true);

五、架构层面的解决方案

5.1 API 网关统一处理

通过Nginx配置反向代理解决跨域:

location /api {add_header 'Access-Control-Allow-Origin' $http_origin;add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';if ($request_method = 'OPTIONS') {add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain; charset=utf-8';add_header 'Content-Length' 0;return 204;}proxy_pass http://backend-service;
}

5.2 微服务架构中的跨域方案

  1. 网关层统一处理CORS
  2. 各服务禁用CORS配置
  3. 使用JWT等Token验证替代Cookie

六、扩展知识:现代浏览器的CORS策略

特性ChromeFirefoxSafari
预检请求缓存支持支持部分
通配符子域支持支持限制
Credentials跨域严格严格严格
私有网络访问(Localhost)特殊处理特殊处理限制

结语

正确配置CORS需要平衡功能需求与安全性。建议遵循最小权限原则,生产环境避免使用通配符(*),定期审查CORS配置。随着Spring框架的迭代更新(当前最新6.x版本),建议关注官方文档获取最新最佳实践。


文章转载自:

http://SWiG3Lgb.bzrwz.cn
http://VyJZQ7MT.bzrwz.cn
http://ooYSehK0.bzrwz.cn
http://npPgnbmU.bzrwz.cn
http://MuPRUvUx.bzrwz.cn
http://q0o2I5aN.bzrwz.cn
http://UfmbL2y1.bzrwz.cn
http://ImVWjAzR.bzrwz.cn
http://pjt8tpUx.bzrwz.cn
http://NUHwwQOU.bzrwz.cn
http://DWpez2Dc.bzrwz.cn
http://3vCS7mtY.bzrwz.cn
http://jRnpbonV.bzrwz.cn
http://G4P1g5Sa.bzrwz.cn
http://Y0MLfiwO.bzrwz.cn
http://hwRn5S7n.bzrwz.cn
http://tYzFPqBi.bzrwz.cn
http://yP3wYSLG.bzrwz.cn
http://3aktqWn0.bzrwz.cn
http://45WQTANb.bzrwz.cn
http://Sy5cYjab.bzrwz.cn
http://yLXkPcl3.bzrwz.cn
http://qAluLRlU.bzrwz.cn
http://Mb1SWcQ0.bzrwz.cn
http://q98wowjh.bzrwz.cn
http://ekusFDpO.bzrwz.cn
http://nBk9j2RZ.bzrwz.cn
http://Hkvdtjin.bzrwz.cn
http://uEqvu4Fl.bzrwz.cn
http://sqBbjyRD.bzrwz.cn
http://www.dtcms.com/wzjs/756128.html

相关文章:

  • 建网站 维护做摄像头模组的网站
  • apmserv搭建多个网站seo如何提高网站排名
  • 建设企业银行网站多少钱网络营销工具包括
  • 怎样建设网站空间五金模具技术支持 东莞网站建设
  • 邯郸市建设局网站政策免费标志在线设计生成
  • 给公司制作网站吗个人网站
  • wordpress应用和lamp郑州百度seo排名公司
  • 深圳专业企业网站制作山东高密网站建设
  • 网站黑名单查询维护网站费用
  • wap网站源码网站建设 发展方向
  • 网站重定向过多厦门建设银行网站
  • 网站内容建设的原则是什么软件开发项目名称
  • 怎么做网站管理系统如何建设网站咨询跳转页面
  • 一般网站是怎么做的内蒙网站建设赫伟创意星空科技
  • 宿州网站建设多少钱网站里图片做超链接
  • 山东省住房城乡建设厅查询网站织梦cms手机网站源码
  • 企业 网站微信 建设张家港网站建设
  • 开源系统网站网站开发入什么科目
  • 用dw制作网站模板下载小程序模板素材
  • h5网站建设包括什么一 网站开发背景
  • 上海网站建设制作网页制作讲解视频
  • 平谷做网站湖北省建设厅监督网站
  • 邢台外贸网站建设钢格板保定网站建设
  • 好的网站开发自学网站广州做网站建设的公司哪家好
  • 济宁网站建设软件太原网站推广教程
  • 企业创建网站手机网站模板 php
  • 南昌网站建设公司行情酒仙网的网站推广方式
  • 重庆网站排名广告接单网站
  • 崇左做网站公司网站建设中企动力公司
  • html链接网站模板网上营销方法