我有一个带有休息控制器的 Spring boot 应用程序和一个作为前端的 Angular 应用程序。\n目前,它们都在 localhost 中运行,并且启用了 SpringSecurity。\n最初,由于 Cors,我无法从 Angular 向 Spring 发出 getRequest。我将@CrossOrigin 添加到我的restContoller 中,现在我能够执行从Angular 到Spring 的Get 请求。\n现在我在发布请求时遇到了同样的问题。我想从 Angular 向 Spring 发送一些表单数据,但在 Chrome 中总是出现错误。我在这里也添加了@CrossOrigin,但我仍然有问题。\n如果我尝试使用邮递员发送帖子请求,它工作得很好
\n\nzone.js:3243 从源“http://localhost:4200 ”访问“localhost:8080/rest/contact”处的 XMLHttpRequest已被 CORS 策略阻止:仅协议方案支持跨源请求: http、数据、chrome、chrome 扩展、https。
\n\ncontact.component.ts:51 HttpErrorResponse\xc2\xa0{headers: HttpHeaders, status: 0, statusText: "未知错误", url: "localhost:8080/rest/contact", ok: false,\xc2\xa0\xe2 \x80\xa6}
\n\n这是我的安全配置:
\n\n@EnableGlobalMethodSecurity(prePostEnabled = true)\n@Configuration\n@EnableWebSecurity\npublic class SecurityConfig extends WebSecurityConfigurerAdapter {\n\n @Autowired\n private CustomUserDetailsService userDetailsService;\n\n @Override\n protected void configure (AuthenticationManagerBuilder auth) throws Exception {\n auth.userDetailsService(userDetailsService)\n .passwordEncoder(getPasswordEncoder());\n }\n\n\n @Override\n protected void configure(HttpSecurity http) …Run Code Online (Sandbox Code Playgroud) 我有一个带有 Thymeleaf 和内存身份验证的 Spring MVC 项目。在我的 html 中,我想显示当前登录的用户并仅在有人登录时显示注销按钮。
这是一个简单的 html,它应该显示用户名,但总是显示 Bob 和一个只有在有人登录时才应该显示的文本,但它始终显示。
知道我做错了什么吗?
这是我的 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>info.climbinggyms</groupId>
<artifactId>main</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>main</name>
<description>website with an overview of the existing climbing gyms</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId> …Run Code Online (Sandbox Code Playgroud) 我是 RXJS 的新手,我正在努力使以下代码正常工作。在 angular 中,我正在调用 REST API,其余 API 返回一个数组。我只需要模型中 API 的某些数据。我正在尝试使用 RXJS 来做到这一点(所以没有 forEach,...),这就是我到目前为止所拥有的:
import { Injectable, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { DataPackage } from './models/data-package';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class PackageService implements OnInit{
constructor(private http: HttpClient) { }
getPackages(): Observable<DataPackage> {
return this.http
.get<any>('http://dummy.restapiexample.com/api/v1/employees')
.pipe(
map((data: any[]) =>
data.map(
(response: any) =>
new DataPackage(response.employee_name, response.employee_salary, response.employee_age, new Date())
) …Run Code Online (Sandbox Code Playgroud)