我正在制作一个应用程序,它从mongoDB中获取代码并将它们列出到网页上,但目前我在控制台中收到一个错误:
GET http://localhost:4200/api/code/codes/404(Not Found)zone.js:2863
我以前没有遇到过这个错误&我不确定是我的代码中有错误还是端口有问题,我的服务器在端口3000上启动,Angular 部分在端口4200上启动。
router.get("/codes", async (req, res) => {
try {
Code.find({}, function (err, codes) {
if (err) {
console.log(err);
res.status(501).send({
message: `MongoDB Exception: ${err}`,
});
} else {
console.log(codes);
res.json(codes);
}
});
} catch (e) {
console.log(e);
res.status(500).send({
message: `Server Exception: ${e.message}`,
});
}
});
字符串
我的服务文件
export class CodeService {
constructor(private http: HttpClient) {}
findAllCodes() {
return this.http.get('api/code/codes/');
}
}
型
而我的家庭组件是我试图显示代码的地方,
export class HomeComponent implements OnInit {
code: Code[];
constructor(private codeService: CodeService) {
this.codeService.findAllCodes().subscribe(
(res) => {
// Logging for debugging purposes
console.log('--Server respons from findAllCodes--');
console.log(res);
},
(err) => {
console.log('--Server error--');
console.log(err);
},
() => {
console.log('--codes--');
console.log(this.code);
}
);
}
ngOnInit(): void {}
}
型
1条答案
按热度按时间x4shl7ld1#
当您像以前那样调用API时,您将向Web应用程序的同一个源发出请求,因此当您调用此路由时,不是调用您的API路由,而是调用您自己的Web应用程序的路由。
要解决这个问题,您需要检查API正在运行的端口,并执行以下操作之一:
1.创建一个代理文件,将您的API调用重定向到您正在使用的端口。示例:
您的根目录:proxy.json
字符串
1.使用API的完整路径执行调用:
型
如果你的服务器上没有CORS配置,你可能需要配置它,因为你要从不同的域调用你的API。如果你使用的是node.js和express,请检查这个link。