具有基本身份验证的 Angular 7 HTTP 请求 [关闭]
Posted
技术标签:
【中文标题】具有基本身份验证的 Angular 7 HTTP 请求 [关闭]【英文标题】:Angular 7 HTTP Requests with Basic Authentication [closed] 【发布时间】:2019-09-11 12:49:08 【问题描述】:我将 Angular 7 与 Spring Boot 和 Spring Security 一起使用。我在后端实现了基本身份验证
我遇到的问题是我使用包含用户名和密码的 Http 标头从 Angular 发送请求。但在后端会抛出一个名为“请求被拒绝,因为 URL 未标准化”的异常。 我该如何解决这个问题?
这是请求
const httpOptions =
headers: new HttpHeaders(
'Authorization': 'Basic ' + btoa('test:test123')
)
;
return this.http.get(this.url+"/items",httpOptions);
【问题讨论】:
org.springframework.security.web.firewall.RequestRejectedException: 由于 URL 未规范化,请求被拒绝。 这不是 Angular 问题。似乎有一些防火墙正在阻止。 ***.com/questions/35252872/… 我使用 Postman 进行检查。它有效! 我不同意这是错字/无回购。但是,它缺少minimal reproducible example,因为它没有告诉我们this.url
是,这对于确定实际问题至关重要。
【参考方案1】:
确保this.url
没有尾部斜杠,因为如果是这样,那么您将在item
之前看到双斜杠,这通常是“URL 未标准化”错误。
【讨论】:
谢谢。修复。但现在在前端显示 HTTP 错误。代码 401 这意味着用户未经身份验证,这意味着基本授权由于某种原因没有成功。你能分享你的安全配置吗? 我刚刚在 pom.xml 中添加了 Security 依赖,并在 application.property 文件中添加了用户名和密码。 我使用带有基本身份验证的邮递员发送请求,它有效,但使用角度它不起作用 您能否尝试检查开发人员工具的请求标头中的Authorization
标头值,并将其与 PostMan 中标头的值进行比较,看看它们是否匹配以上是关于具有基本身份验证的 Angular 7 HTTP 请求 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
带有 HTTP 基本身份验证的 Angular 6 HTTP Get 请求
Angular 7 .net 核心 2.2 WebApi Windows 身份验证 CORS
无法使用 Angular 2 作为前端并使用基本 Http 身份验证获取有关 Spring 安全性的登录详细信息
基于 JWT 身份验证和角色在 Express 中路由到多个 Angular 7 项目