【发布时间】:2018-12-03 16:28:55
【问题描述】:
我在 Spring Boot 应用程序中有一个休息服务。
我有一个方法,它接受用户名和密码作为 json 数据并检查这些数据,如果它们为真,则服务返回 JWT 令牌。
当我通过 Angular 调用此方法时,我无法获取授权令牌并请求发送两次。
为什么请求发送两次,如何获取角度令牌?
import {Component, OnInit} from '@angular/core';
import {Payment} from './Payment';
import {HttpClient, HttpResponse} from '@angular/common/http';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
title = 'Home';
constructor(private http: HttpClient) {
}
ngOnInit() {
this.http.post('http://localhost:8084/login', JSON.stringify({ username: 'mehman', password: 'mehman' }), { observe: 'response' })
.subscribe((response: HttpResponse<any>) => { console.log(response); });
}
}
【问题讨论】:
-
请发布服务和组件代码。以便我们更好地了解您的问题并提供解决方案。
-
可能是 CORS 问题
-
我为这个问题添加了@CrossOrigin到我的休息方法=> Access-Control-Allow-Origin
-
是的,但这就是请求被发送两次的原因。一次用于 OPTIONS,一次用于 POST。而且我认为响应中的标头是延迟加载的,因此您需要访问它们才能看到它们显示
-
如何防止两次请求?我无法理解您的第二种方法。
标签: angular spring-boot authentication spring-security