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

包头企业做网站seo排名优化服务

包头企业做网站,seo排名优化服务,优秀的产品设计与分析,昆明微网站建设在Spring MVC中处理跨域问题可以通过以下几种方式实现,确保前后端能够正常通信: 方法一:使用 CrossOrigin 注解 适用于局部控制跨域配置,直接在Controller或方法上添加注解。 示例代码: RestController CrossOrigin…

在Spring MVC中处理跨域问题可以通过以下几种方式实现,确保前后端能够正常通信:


方法一:使用 @CrossOrigin 注解

适用于局部控制跨域配置,直接在Controller或方法上添加注解。

示例代码:
@RestController
@CrossOrigin(origins = "http://localhost:8080") // 允许指定源
public class MyController {@GetMapping("/data")public String getData() {return "Hello, CORS!";}
}
  • 参数说明
    • origins: 允许的源(多个用逗号分隔,或用 @CrossOrigin(origins = "*") 允许所有,但不推荐生产环境)。
    • methods: 允许的HTTP方法(如 RequestMethod.GET)。
    • allowedHeaders: 允许的请求头。
    • allowCredentials: 是否允许发送Cookie(需与前端配置一致)。

方法二:全局配置 WebMvcConfigurer

适用于全局跨域设置,统一管理所有接口的跨域规则。

步骤:
  1. 创建配置类实现 WebMvcConfigurer
  2. 重写 addCorsMappings 方法。
示例代码:
@Configuration
public class CorsGlobalConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**") // 匹配所有路径.allowedOrigins("http://localhost:8080", "https://example.com").allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS").allowedHeaders("*").allowCredentials(true).maxAge(3600); // 预检请求缓存时间(秒)}
}

方法三:使用 CorsFilter

通过自定义过滤器精细化控制跨域行为,适合复杂场景。

示例代码:
@Configuration
public class CorsFilterConfig {@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true);config.addAllowedOrigin("http://localhost:8080");config.addAllowedHeader("*");config.addAllowedMethod("*");source.registerCorsConfiguration("/**", config); // 对所有路径生效return new CorsFilter(source);}
}

方法四:结合 Spring Security

若项目集成了Spring Security,需额外配置安全规则以启用CORS。

步骤:
  1. 在安全配置类中启用CORS。
  2. 定义 CorsConfigurationSource Bean。
示例代码:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.cors().and() // 启用CORS.csrf().disable().authorizeRequests().anyRequest().authenticated();}@Beanpublic CorsConfigurationSource corsConfigurationSource() {CorsConfiguration config = new CorsConfiguration();config.setAllowedOrigins(Arrays.asList("http://localhost:8080"));config.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"));config.setAllowedHeaders(Arrays.asList("*"));config.setAllowCredentials(true);UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return source;}
}

方法五:通过 <mvc:cors> 命名空间配置全局跨域规则

在 Spring MVC 中,如果项目使用 applicationContext.xml 进行配置(基于 XML 的配置方式),这是最直接的 XML 配置方式,适用于全局跨域设置。

步骤:
  1. 确保 XML 文件头部声明了 mvc 命名空间

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
  2. <mvc:annotation-driven> 标签内配置跨域规则

    <mvc:annotation-driven><mvc:cors><!-- 配置全局跨域 --><mvc:mapping path="/**"allowed-origins="http://localhost:8080, https://example.com"allowed-methods="GET, POST, PUT, DELETE, OPTIONS"allowed-headers="Content-Type, Authorization"allow-credentials="true"max-age="3600"/></mvc:cors>
    </mvc:annotation-driven>
    
    • 参数说明
      • path: 匹配的 URL 路径模式(支持 Ant 风格,如 /api/**)。
      • allowed-origins: 允许的源(多个用逗号分隔)。
      • allowed-methods: 允许的 HTTP 方法。
      • allowed-headers: 允许的请求头。
      • allow-credentials: 是否允许发送 Cookie(对应 allowCredentials(true))。
      • max-age: 预检请求缓存时间(秒)。

方法六:通过自定义 CorsFilter Bean 配置

通过applicationContext.xml配置处理跨域问题时,如果需要对跨域行为进行更细粒度的控制(例如动态配置),可以手动注册 CorsFilter

步骤:
  1. applicationContext.xml 中定义 CorsFilter Bean

    <bean id="corsFilter" class="org.springframework.web.filter.CorsFilter"><constructor-arg><bean class="org.springframework.web.cors.UrlBasedCorsConfigurationSource"><property name="corsConfigurations"><map><entry key="/**"><bean class="org.springframework.web.cors.CorsConfiguration"><property name="allowedOrigins"><list><value>http://localhost:8080</value><value>https://example.com</value></list></property><property name="allowedMethods"><list><value>GET</value><value>POST</value><value>PUT</value><value>DELETE</value><value>OPTIONS</value></list></property><property name="allowedHeaders"><list><value>Content-Type</value><value>Authorization</value></list></property><property name="allowCredentials" value="true"/><property name="maxAge" value="3600"/></bean></entry></map></property></bean></constructor-arg>
    </bean>
    
  2. 确保 CorsFilter 优先执行
    web.xml 中,将 CorsFilter 注册为第一个 Filter:

    <filter><filter-name>corsFilter</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping><filter-name>corsFilter</filter-name><url-pattern>/*</url-pattern>
    </filter-mapping>
    

完整示例:结合 applicationContext.xmlweb.xml

applicationContext.xml 配置:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 启用注解驱动并配置 CORS --><mvc:annotation-driven><mvc:cors><mvc:mapping path="/**"allowed-origins="http://localhost:8080"allowed-methods="GET, POST, PUT, DELETE"allowed-headers="Content-Type, Authorization"allow-credentials="true"max-age="3600"/></mvc:cors></mvc:annotation-driven></beans>
web.xml 配置(确保 Filter 顺序):
<filter><filter-name>corsFilter</filter-name><filter-class>org.springframework.web.filter.CorsFilter</filter-class>
</filter>
<filter-mapping><filter-name>corsFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

通过方式五和方式六,可以在基于 XML 的 Spring MVC 项目中灵活配置跨域规则。推荐使用 <mvc:cors> 命名空间配置,简单且直接;若需动态控制,则选择 CorsFilter

关键注意事项

  1. 预检请求(Preflight):浏览器会先发送 OPTIONS 请求检查服务器是否允许跨域。确保配置中包含 allowedMethods 并正确处理 OPTIONS
  2. 携带凭证(Cookies):若需传输Cookies,前端需设置 withCredentials: true,后端需设置 allowCredentials(true),且 allowedOrigins 不能为 *
  3. 生产环境安全:避免使用通配符 *,应明确指定允许的源、方法和头信息。
  4. allowedOrigins vs allowedOriginPatterns
    • 如果使用 Spring 5.3+,可以用 allowedOriginPatterns 支持通配符模式(如 http://*.example.com)。
    • XML 配置中需通过 <list> 手动指定具体域名。
  5. 与 Spring Security 集成
    • 如果项目集成了 Spring Security,需在安全配置中启用 CORS:
      <http auto-config="true" use-expressions="true"><cors/> <!-- 启用 CORS --><!-- 其他安全配置 -->
      </http>
      

通过上述方法,可灵活解决Spring MVC中的跨域问题,根据项目需求选择最合适的方案。

http://www.dtcms.com/wzjs/249580.html

相关文章:

  • 做网站开发的电话销售话术域名解析查询
  • 进贤南昌网站建设公司百度大搜推广开户
  • 做网站怎么做推广西安seo建站
  • 网站建设优化公司哪家好sem竞价推广怎么做
  • 荥阳网站制作电商网站卷烟订货流程
  • 网站服务器端口如何做防护世界十大网站排名出炉
  • 工程招标信息网下载排名优化seo公司
  • 做婚恋网站的开发口碑营销策划方案
  • 公司网站设计方案教育培训机构推荐
  • 个性化网站小视频关键词汇总
  • 杭州便宜的手机网站建设seo是什么姓
  • 网站url可以在自己做吗百度广告推广怎么做
  • 我的世界服务器如何做充钱网站阳城seo排名
  • 网站文章好几天不收录营销图片大全
  • 设计一个简单的旅游网站国内新闻最新消息十条
  • 做网站项目前期工作包括哪些云南网络推广
  • 深圳网站建设 独占网络网络推广协议合同范本
  • 杨浦区公司网站建设网络营销渠道策略研究
  • 自适应网站三套代码济南网站建设哪家专业
  • 门户网站建设方案今日头条新闻最新疫情
  • wordpress 整站加密百度站长工具域名查询
  • 自己做的网站百度收录企业网站优化排名
  • 无锡网站建设选众鼎南京seo优化
  • 做境外旅游的网站友情链接交易网
  • 前端做学校网站教务seo优化网站查询
  • 国家企业信用信息公示系统广西谈谈你对seo概念的理解
  • 做网站 每月赚 钱关键对话
  • 国外做批发的网站被公司优化掉是什么意思
  • 公司做年审在哪个网站如何做好搜索引擎优化工作
  • h5响应式网站建设游戏推广员上班靠谱吗