gpt4 book ai didi

Angular 6,httpclient 404 错误。 GET URL 自动更改

转载 作者:行者123 更新时间:2023-12-05 07:27:14 25 4
gpt4 key购买 nike

我有一个非常奇怪的错误。花了几个小时试图修复它,但仍然没有任何线索。我将解释我遇到的问题的一个非常基本的版本。我有一个简单的 Angular 页面,在初始化时调用 REST 服务,返回的数据将用于填充一些菜单选项..

下面的代码工作正常。

ngOnInit() {
//this.Envi.BaseLink + `api/V2Startup?userid=${this.Envi.Userid}`

this.http.get('http://dagilitywebv2/api/V2Startup?userid=TES0049').pipe(

map((data: any) => ({
Locations: data.Locations,
MenuItems: (<any[]>data.Menu).map(mnu => ({ GroupName: mnu.GroupName, MenuList: mnu.MenuList, ExpandTree: true }))
})),

).subscribe((data: any) => {
this.Locations = data.Locations;
this.MenuItems = data.MenuItems;
});

}

但是如果我用

替换硬编码的 URL
this.Envi.BaseLink + `api/V2Startup?userid=${this.Envi.Userid}`

我收到 404 错误。最初我的印象是 this.Envi.BaseLink 没有正确的值所以我做了一个 console.log,

console.log(this.Envi.BaseLink + `api/V2Startup?userid=${this.Envi.Userid}`);
this.http.get(this.Envi.BaseLink + `api/V2Startup?userid=${this.Envi.Userid}`).pipe

下面是我看到的。 console.log 打印出正确的 URL。但是 我的 $http.get 正在添加我网站的开发域,即 它将地址视为相对于我的根enter image description here

  1. > http://dangularv6是我的 Angular 页面所在的位置。
  2. > http://dagilitywebv2/api/V2Startup?userid=TES0049是我要调用的服务。
  3. 但是当 this.http.get 被调用时。一些它是如何调用 http://dangularv6/dagilitywebV2//api/V2Startup?userid=TES0049 ,即将其视为相对 URL。
  4. 如果我再次使用 http://dagilitywebv2/api/V2Startup?userid=TES0049 进行硬编码它工作正常。

当我在本地运行我的 Angular 应用程序时(本地端口:4200),同样的代码工作正常,但是当我将它移动到开发服务器以在 http://dangularv6 下运行时, $http.get 将此前缀添加到我的服务 URL。

我不知道为什么会这样……有什么帮助吗?

更新:环境.ts

export const environment = {
production: false,
baselink: 'http://dagilitywebv2.lkq.lkqx.net/',
};

可注入(inject)类

@Injectable({providedIn: 'root'})
export class UserEnvironment {
constructor() {this.BaseLink = environment.baselink;}
}

在组件中

import { UserEnvironment } from '../app-constants';
constructor(private http: HttpClient, private Envi: UserEnvironment) { }

最佳答案

你的 Envi Baselink 一定是坏了,因为 get 正试图去 http://dangularv6/dagilitywebv2//

也许您需要一个 BaseUrl 用于您的客户端,另一个用于您的 Envi 中的服务器,这样您就可以使用 BaseUrl,在某些情况下使用 BaseUrl,在其他情况下使用 ServerUrl

虽然我可能是错的

关于Angular 6,httpclient 404 错误。 GET URL 自动更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54041737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com