乐趣区

关于springboot:Spring-Boot-教程CORS-支持

【注】本文译自:https://www.tutorialspoint.co…

  跨域资源共享 (CORS) 是一个平安概念,它容许在 web 浏览器中实现对资源拜访的限度。它可防止 JavaScript 代码产生或生产别逾越不同域的申请。
  例如,你的运行在 8080 端口的 web 利用试图应用 JavaScript 生产来自 9090 端口的 RESTful web 服务。在这样的情景下,你将面对 web 浏览器上跨域资源共享的平安问题。
  这个问题有两个需要要解决:

  • RESTful web 服务该当反对跨域资源共享。
  • RESTful web 服务利用该当容许来自 8080 端口拜访 API(s)。

  在本文中,咱们将具体学习如何让一个 RESTful Web 服务利用可能进行跨域申请。

在控制器办法中使能 CORS

  咱们须要在控制器办法上对一个 RESTful web 服务应用 @CrossOrigin 设置源。@CrossOrigin 注解反对指定 REST API,而不是对整个利用。

@RequestMapping(value = "/products")
@CrossOrigin(origins = "http://localhost:8080")
public ResponseEntity<Object> getProduct() {return null;}

全局 CORS 配置

  要定义 @Bean 以对 Spring Boot 利用全局配置 CORS。

@Bean
public WebMvcConfigurer corsConfigurer() {return new WebMvcConfigurerAdapter() {
      @Override
      public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/products").allowedOrigins("http://localhost:9000");
      }    
   };
}

  在主 Spring Boot 利用中全局配置 CORS 的代码如下:

package com.tutorialspoint.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);
   }
   @Bean
   public WebMvcConfigurer corsConfigurer() {return new WebMvcConfigurerAdapter() {
         @Override
         public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/products").allowedOrigins("http://localhost:8080");
         }
      };
   }
}

  当初,你创立了一个 Spring Boot web 利用,运行在 8080 端口上,RESTful web 服务利用运行在 9090 端口上。对于如何实现 RESTful Web 服务,你能够参考本系列教程的另外一部分: 生产 RESTful Web 服务

退出移动版