【问题标题】:How to fix DOMException: "The URI is malformed." in Angular 6 running HTTP?如何修复 DOMException:“URI 格式错误。”在运行 HTTP 的 Angular 6 中?
【发布时间】:2019-05-04 14:31:31
【问题描述】:

解决方案更新: 目标 URL 构造错误,在 IP 地址和运算符之间使用双冒号运算符 (::) 而不是一个,导致此问题。

我有一个在 MEAN Stack 上运行的项目。 Node Server 在一台计算机上运行,​​而 Angular App 在另一台计算机上运行。 Angular 应用程序使用 angular/common/http 的 HTTPClient 向节点服务器发送请求。在我重组应用程序以添加更多功能之前,这些请求运行良好并获取数据。现在,角度应用程序请求未到达节点服务器并返回未定义的错误状态和正文。记录错误对象后,我得到了以下语句:

DOMException:“URI 格式错误。”

来自 PostMan 的请求和调用相同 URL 的浏览器在运行 Angular 应用程序的同一设备上运行良好。现在只有 Angular 应用程序不再能够将其请求发送到服务器。我尝试过制作新的 Angular 项目,更新/重新安装包,但到目前为止都没有成功。

之前完美运行的客户端代码是:

import { HttpClient,HttpParams } from '@angular/common/http';
getLiveData(){
    return this._httpClient.get(this.getLiveURL).pipe(catchError(this.handleError));
  }

我希望有数据作为响应,但是角度请求无法到达服务器端。

【问题讨论】:

  • 也许“this.getLiveURL”是一个函数?如果是这样,请尝试“this.getLiveURL()”
  • 刚好修好了。 this.getLiveURL 是一个属性,但是它的 IP 地址和端口号由双冒号 (::) 分隔,而不是单个冒号,这导致了问题。很难删除来自 C++ 背景的范围解析 :: 运算符。

标签: angular http uri


【解决方案1】:

有一次,我在 ReactJS 中遇到了同样的问题,但当时我通过以下更改得到了解决方案:

发生错误时,我的 URL 如下: “https://localhost:8000member/getstate”

这里我错过了 /(slash) b/w 端口号和成员。

然后我将其更改为: “https://localhost:8000/member/getstate” 它也成功了。

我希望它也对你有用。

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2019-12-15
    • 1970-01-01
    • 2018-04-08
    相关资源
    最近更新 更多