Angular 角度HttpClient请求返回404。链接已激活

Angular 角度HttpClient请求返回404。链接已激活,angular,typescript,angular-httpclient,Angular,Typescript,Angular Httpclient,我试图从tomcat服务器向angular应用程序获取数据。 在我的tomcat服务器上,我有一个返回json的链接 在我的angular应用程序中,我尝试使用httpclient和httpheader获取json 当我将链接从角度代码复制到浏览器时,浏览器会接受它。然后,tomcat服务器上的终端会显示一条系统消息。 但是,当我运行angular代码时,没有显示终端消息,在angular应用程序的控制台日志中,我看到了如下所示的错误 下面是生成json响应的java方法。SystemOut语句

我试图从tomcat服务器向angular应用程序获取数据。 在我的tomcat服务器上,我有一个返回json的链接 在我的angular应用程序中,我尝试使用httpclient和httpheader获取json

当我将链接从角度代码复制到浏览器时,浏览器会接受它。然后,tomcat服务器上的终端会显示一条系统消息。 但是,当我运行angular代码时,没有显示终端消息,在angular应用程序的控制台日志中,我看到了如下所示的错误

下面是生成json响应的java方法。SystemOut语句按预期显示json

公共字符串toJSON(对象对象)抛出JsonProcessingException
{
ObjectMapper mapper=新的ObjectMapper();
返回mapper.writeValueAsString(对象);
}
私有void getAllUser(HttpServletRequest请求、HttpServletResponse响应)引发IOException
{
System.out.println(“en-deze请求是GET-ALL-USERS”);
字符串userJSON=this.toJSON(model.getPersons());
System.out.println(“en-deze请求是GET-ALL-USERS=“+userJSON”);
setContentType(“应用程序/json”);
response.getWriter().write(userJSON);
}
接收json的角度代码:

从'@angular/core'导入{Injectable};
从'@angular/common/http'导入{HttpClient,HttpHeaders};
从“./Gebruiker”导入{Gebruiker};
从“./message.service”导入{MessageService};
从'rxjs'导入{可观察的};
从“rxjs/operators”导入{catchError,map,tap};
常量httpOptions={
标题:新的HttpHeaders({'Content-Type':'application/json'})
};
@注射的({
providedIn:'根'
})
导出类GebruikerService{
私有urlGetAllUsers=http://localhost:8081/Controller?action=angular&asyncAction=getAllUsers';
建造师(
私有http:HttpClient,
私有消息服务:消息服务){
}
/**从服务器获取gebruikers*/
getGebruikers():可观察{
常量url=`${this.urlGetAllUsers}`;
返回此.http.get(url)
.烟斗(
点击(=>this.log('fetched gebruikers')),
catchError(this.handleError('getGebruikers',[]))
);
}
私有句柄错误(操作='operation',结果?:T){
返回(错误:任意):可观察=>{
//TODO:将错误发送到远程日志记录基础结构
console.error(error);//改为登录到控制台
//TODO:更好地转换错误以供用户使用
此.log(`operation}失败:${error.message}`);
//通过返回空结果让应用程序继续运行。
返回(结果为T);
};
}
}
我在控制台中收到的错误消息:

{body: {…}, url: "http://localhost:8081/Controller?action=angular&asyncAction=getAllUsers", headers: HttpHeaders, status: 404, statusText: "Not Found"}
body: {error: "Collection 'undefined' not found"}
headers: HttpHeaders
lazyInit: ƒ ()
lazyUpdate: null
normalizedNames: Map(0) {}
__proto__: Object
status: 404
statusText: "Not Found"
url: "http://localhost:8081/Controller?action=angular&asyncAction=getAllUsers"
__proto__: Object
我希望有人能帮助我。
谢谢

当您从浏览器运行GET方法时,浏览器在请求中传递了什么?你能截图一下get请求的网络标签吗?您可以使用Google Chrome的开发工具捕获浏览器发送的get请求,并将其粘贴到此处作为文本或图像

我在想,浏览器传递的不是“内容类型”:“应用程序/json”,而是其他类型(可能默认为文本)。还有可能tomcat服务器(我假设它是基于JavaEE的应用程序)没有将请求路由到正确的请求处理程序


您还可以提供您的请求映射设置,我假设您可能在servlet应用程序(部署到Tomcat服务器)的web.xml配置文件中有该设置。

当您从浏览器运行GET方法时,浏览器在请求中传递了什么?你能截图一下get请求的网络标签吗?您可以使用Google Chrome的开发工具捕获浏览器发送的get请求,并将其粘贴到此处作为文本或图像

我在想,浏览器传递的不是“内容类型”:“应用程序/json”,而是其他类型(可能默认为文本)。还有可能tomcat服务器(我假设它是基于JavaEE的应用程序)没有将请求路由到正确的请求处理程序


您还可以提供您的请求映射设置,我认为您可能在servlet应用程序(部署到Tomcat服务器)的web.xml配置文件中有这些设置。

您好,很抱歉响应太晚。有什么事发生了。我发现了问题所在。我的应用程序模块中仍然有HttpClientInMemoryWebApiModule.forRoot(InMemoryDataService,{Data封装:false})。现在我确实犯了她的错误。但我想我会找到的。很高兴听到您能够找到解决方案。您好,很抱歉反应太晚。有什么事发生了。我发现了问题所在。我的应用程序模块中仍然有HttpClientInMemoryWebApiModule.forRoot(InMemoryDataService,{Data封装:false})。现在我确实犯了她的错误。但我想我会找到的。非常感谢您能找到解决方案。