我使用的是Spring Boot2.2.2,作为REST服务发布,并为前端做出反应。
@RestController
public class FeedController {
@Autowired
private IFeedService IFeedService;
@CrossOrigin(origins = "http://localhost:3000")
@GetMapping(path="/v1/getdashboard")
public ResponseEntity<String> feedDashBoardController(){
String result = null;
HttpStatus httpStatus = HttpStatus.BAD_REQUEST;
try {
List<FeedData> dashBoardFeedInfo = IFeedService.getDashBoardFeedService();
// Create ObjectMapper
ObjectMapper mapper = new ObjectMapper();
JsonNode dataNode = mapper.valueToTree(dashBoardFeedInfo);
result = FeedResponseData.generateFeedResponse(dataNode);
httpStatus = HttpStatus.OK;
}catch(TBServiceException e) {
result = AppExceptions.handleException("Something Went Wrong");
httpStatus = HttpStatus.BAD_REQUEST;
}
return new ResponseEntity<String>(result,httpStatus);
}
}
@SpringBootApplication
public class TechnicalBlogApplication {
public static void main(String[] args) {
SpringApplication.run(TechnicalBlogApplication.class, args);
System.out.println("Application Main - Update -1");
}
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/v1/getdashboard").allowedOrigins("http://localhost:3000");
}
};
}
}
我的Spring应用程序属性:
spring.profiles.active=dev
server.port=6001
server.servlet.context-path=/technical-blog
我的React代码片段:
async componentDidMount() {
const dashboardData= await fetch("http://localhost:6001/technical-blog/v1/getdashboard");
console.log("dash ",dashboardData)
}
我也尝试过设置标题,下面是重新修改的控制器。我有多个CORS定义错误。
@RestController
public class FeedController {
@Autowired
private IFeedService IFeedService;
@CrossOrigin(origins = "http://localhost:3000")
@GetMapping(path="/v1/getdashboard")
public ResponseEntity<String> feedDashBoardController(){
String result = null;
HttpStatus httpStatus = HttpStatus.BAD_REQUEST;
try {
List<FeedData> dashBoardFeedInfo = IFeedService.getDashBoardFeedService();
// Create ObjectMapper
ObjectMapper mapper = new ObjectMapper();
JsonNode dataNode = mapper.valueToTree(dashBoardFeedInfo);
result = FeedResponseData.generateFeedResponse(dataNode);
httpStatus = HttpStatus.OK;
}catch(TBServiceException e) {
result = AppExceptions.handleException("Something Went Wrong");
httpStatus = HttpStatus.BAD_REQUEST;
}
return new ResponseEntity<String>(result,setHeaders(),httpStatus);
}
}
private HttpHeaders setHeaders() {
List<HttpMethod> allowedMethods = new ArrayList<>();
allowedMethods.add(HttpMethod.GET);
allowedMethods.add(HttpMethod.POST);
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
//httpHeaders.setAccessControlAllowOrigin("*");
httpHeaders.setAccessControlAllowCredentials(true);
httpHeaders.setAccessControlAllowMethods(allowedMethods);
httpHeaders.setAccessControlMaxAge(3600);
return httpHeaders;
}
我认为您应该将@crossorigin(origins=“http://localhost:3000”)
放在控制器本身上,因为请求首先指向的是控制器,而不是函数
所以会是那样
@RestController
@CrossOrigin(origins = "http://localhost:3000")
public class FeedController {
@Autowired
private IFeedService IFeedService;
@GetMapping(path="/v1/getdashboard")
public ResponseEntity<String> feedDashBoardController(){
String result = null;
HttpStatus httpStatus = HttpStatus.BAD_REQUEST;
try {
List<FeedData> dashBoardFeedInfo = IFeedService.getDashBoardFeedService();
// Create ObjectMapper
ObjectMapper mapper = new ObjectMapper();
JsonNode dataNode = mapper.valueToTree(dashBoardFeedInfo);
result = FeedResponseData.generateFeedResponse(dataNode);
httpStatus = HttpStatus.OK;
}catch(TBServiceException e) {
result = AppExceptions.handleException("Something Went Wrong");
httpStatus = HttpStatus.BAD_REQUEST;
}
return new ResponseEntity<String>(result,setHeaders(),httpStatus);
}
}
我正在设置Angular Spring Security模块来登录和注册用户。当我注册一个用户时,一切都正常。注册后的最后一步是自动登录,但我遇到了以下错误: XMLHttpRequest无法加载超文本传输协议//localhost:8080/com-tesis/login.请求的资源上不存在“访问控制允许起源”标头。因此不允许访问起源“超文本传输协议//localhost:9000”。响应的HT
Hibernate:/*select generatedAlias0 from User为generatedAlias0*/select user0_.ID为id1_0_,user0_.CREATEDATE为createda2_0_,user0_.Email为email3_0_,user0_.PASSWORD为password4_0_,user0_.Security_LEVEL为security5
本文向大家介绍SpringBoot + SpringSecurity 环境搭建的步骤,包括了SpringBoot + SpringSecurity 环境搭建的步骤的使用技巧和注意事项,需要的朋友参考一下 一、使用SpringBoot+Maven搭建一个多模块项目(可以参考这篇文章 --> 这里) 二、删除父工程的src文件,删除app、browser、core下的.java文件 依赖关系: dem
配置详情 Spring:2.6 我创建了一个带有插件的Spring启动应用程序 春网 H2数据库 pom。xml 应用属性 命令行运行 作者epository.java 著者java(Pojo) 当我启动应用程序并转到http://localhost:8080/h2-console时,我看到一个jdbc: h2:~/test的JDBC URL,而不是jdbc: h2: mem: AS。在控制台中登
似乎没有使用Hikaricp。 例如,Spring。数据源。始终影响最大池大小。Spring数据源。希卡里。最大池大小不受影响。 我设定如下: 然后我通过netstat命令检查连接数。有10个连接。似乎hikari的最大池大小不起作用。即使我删除了spring.datasource.maximum池大小,hikari的最大池大小仍然不起作用。 此外,我设置了以下日志事件,但没有关于HikariCP
本文向大家介绍SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法,包括了SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法的使用技巧和注意事项,需要的朋友参考一下 当前后端分离时,权限问题的处理也和我们传统的处理方式有一点差异。笔者前几天刚好在负责一个项目的权限管理模块,现在权限管理模块已经做完了,我想
我一直在研究AES-GCM/AES-CTR,主要是为AEAD。我还没有用这个实现任何东西,但从我所读到的一切来看,基本上nonce只是一个短的IV,有一个内部计数器用于每个加密调用。开发人员/需要在32位计数器循环返回之前确保nonce更改,否则相同的nonce(IV)可能与相同的密钥一起使用,这可能会加密相同的纯文本并泄漏加密密钥。 我真的不明白为什么AES-CBC可以使用随机IV但我读到的一些
本文向大家介绍SpringBoot 监控管理模块actuator没有权限的问题解决方法,包括了SpringBoot 监控管理模块actuator没有权限的问题解决方法的使用技巧和注意事项,需要的朋友参考一下 SpringBoot 1.5.9 版本加入actuator依赖后,访问/beans 等敏感的信息时候报错,如下 Tue Mar 07 21:18:57 GMT+08:00 2017 There