具有基本身份验证的 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 项目

如何使用 Angular 2 进行 oAuth2 基本身份验证?

python 具有基本身份验证的Python 3 HTTP Server