@CrossOrigin的使用

@CrossOrigin的使用

1.使用场景

  • 前后端分离应用:当前端应用和后端服务部署在不同的域或端口上时,前端应用尝试向后端服务发起请求时,可能会遇到同源策略的限制。这时,后端服务可以使用@CrossOrigin注解来允许这些跨域请求。
  • 微服务架构:在微服务架构中,不同的服务可能部署在不同的域或端口上。服务之间或前端应用与后端服务之间的通信可能需要跨域。
  • API开放平台:如果你正在开发一个API开放平台,并希望允许第三方开发者从他们的应用中调用你的API,那么你需要确保你的API支持跨域请求。

2.用法

@CrossOrigin 可以标注在方法或类上。当标注在类上时,表示该类中的所有响应都支持跨域请求。当标注在方法上时,仅表示该方法的响应支持跨域请求。

3.示例

3.1 标注在方法上

java 复制代码
@RestController  
public class MyController {  
  
    @CrossOrigin(origins = "http://example.com")  
    @GetMapping("/myEndpoint")  
    public String myEndpoint() {  
        return "Hello, World!";  
    }  
}

只有http://example.com域的请求才能访问/myEndpoint端点

3.2 标注在类上

java 复制代码
@RestController  
@CrossOrigin(origins = {"http://example.com", "http://anotherexample.com"})  
public class MyController {  
  
    @GetMapping("/myEndpoint")  
    public String myEndpoint() {  
        return "Hello, World!";  
    }  
      
    // 该类中的其他方法也将支持来自http://example.com和http://anotherexample.com的跨域请求  
}

MyController中的所有方法都允许来自http://example.com和http://anotherexample.com的跨域请求。

3.属性配置

@CrossOrigin 注解有多个属性,例如:

origins:允许访问的源列表。
methods:允许访问的HTTP方法(如GET, POST等)。
allowedHeaders:允许携带的请求头。
maxAge:预检请求的缓存时间。
allowCredentials:是否允许发送凭证(如cookies, HTTP认证或客户端SSL证明)。

相关推荐
学长毕设35 分钟前
基于SpringBoot的野生动物公益保护平台设计与实现-附源码
java·spring boot·后端
SL_staff1 小时前
离散制造排程破局:JVS-APS 四步闭环落地实践(开发者视角)
java·产品·全栈
这个昵称不容易1 小时前
SpringBoot 美容院管理系统:232个Java文件315个接口,5套角色从预约到发货一整条链路
java·springboot·毕设
装不满的克莱因瓶2 小时前
【SpringAI Alibaba】ReactAgent记忆管理MessageTrimmingHook与MessageDeletionHook
java·人工智能·ai·ai编程·springai·springaialibaba
文丑颜不良啊2 小时前
LeetCode2241~2260题目解析
java·leetcode
文丑颜不良啊2 小时前
LeetCode2321~2340题目解析
java·leetcode
驭渊的小故事3 小时前
Spring AOP 核心概念与通知类型详解
java·后端·spring
vipxieliang3 小时前
ValidX vs 手写验证代码:开发效率对比实测
java·spring boot·后端
vipxieliang3 小时前
虚拟线程与 GraalVM:Spring Boot 3.x 云原生性能跃迁
java·spring boot·后端
Rain的Java大神之路3 小时前
面试官最烦的答案:“我用 Redis + Token”!接口幂等 8 种方案 + 四层防御,把重复扣款工单干到 0
java·后端·面试