springboot的跨域接口怎么写
时间: 2023-10-14 16:01:33 浏览: 40
在 Spring Boot 中,可以通过添加 `@CrossOrigin` 注解来实现跨域请求。下面是一个示例:
```java
@RestController
@RequestMapping("/api")
public class MyController {
@CrossOrigin(origins = "http://example.com")
@GetMapping("/myEndpoint")
public MyResponse getData() {
// 处理请求并返回响应
}
}
```
在上面的代码中,`@CrossOrigin` 注解的 `origins` 属性指定了被允许跨域访问的域名,这里设置为 `http://example.com`。如果需要允许多个域名访问,可以使用数组:
```java
@CrossOrigin(origins = {"http://example.com", "http://example.net"})
```
另外,`@CrossOrigin` 注解还有其他的属性,可以用来配置跨域请求的细节,例如:
- `allowedHeaders`:允许的请求头。
- `exposedHeaders`:允许客户端访问的响应头。
- `methods`:允许的请求方法。
- `maxAge`:缓存预检请求的时间,单位为秒。
相关问题
Springboot跨域
在Spring Boot中实现跨域请求可以通过以下几种方式:
1. 使用注解 @CrossOrigin
在控制器方法上使用 @CrossOrigin 注解,允许来自指定源的跨域请求。例如:
```java
@CrossOrigin(origins = "http://example.com")
@GetMapping("/api/data")
public ResponseEntity<?> getData() {
// 处理请求
}
```
2. 配置跨域请求
在应用的配置文件中添加跨域请求的配置。例如,在 application.properties 文件中添加以下配置:
```properties
# 允许来自指定源的跨域请求
cors.allowed-origins=http://example.com
cors.allowed-methods=GET,POST,PUT,DELETE
cors.allowed-headers=Authorization,Content-Type
cors.allow-credentials=true
```
3. 使用 WebMvcConfigurer
创建一个类实现 WebMvcConfigurer 接口,并覆盖 addCorsMappings 方法,设置允许跨域请求的配置。例如:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("Authorization", "Content-Type")
.allowCredentials(true);
}
}
```
以上是几种常见的实现跨域请求的方式。根据具体情况选择适合的方式进行配置。记得在配置跨域请求时,要考虑安全性,并只允许来自可信任的源的请求。
springboot跨域
在 Spring Boot 中,可以通过配置 CORS(跨域资源共享)来解决跨域问题。具体步骤如下:
1. 添加依赖
在 pom.xml 中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
2. 添加配置
在 Spring Boot 的配置文件中添加以下配置:
```yaml
spring:
security:
user:
name: admin
password: admin
cors:
allowed-origins: "*"
allowed-methods: GET, POST, PUT, DELETE
allowed-headers: "*"
allow-credentials: true
```
这里的 allowed-origins 配置是允许的跨域地址,"*" 表示允许所有来源。allowed-methods 配置是允许的 HTTP 方法,allowed-headers 配置是允许的 HTTP 头信息,allow-credentials 配置为 true 表示允许发送 cookie。
3. 在 Controller 中添加 @CrossOrigin 注解
在需要跨域的 Controller 上添加 @CrossOrigin 注解即可。例如:
```java
@RestController
@RequestMapping("/api")
@CrossOrigin
public class MyController {
// ...
}
```
这样,该 Controller 中的接口就可以跨域访问了。