我的 dotnet (6) 后端在 localhost:9090 上运行,Angular 前端在 4200 上运行。
我使用 graphql 而不是 Rest(只是一个细节,没有太大变化),当我尝试达到时
http://localhost:9090/graphql
当然它说CORS起源有问题。我已经能够解决这个问题,将 CORS 添加到我的后端,但我不想接触后端,而是在 Angular 上创建代理。
我想在到达 http://localhost:9090/graphql 时告诉我的角度应用程序,我希望起源是 http://localhost:9090,这样我就不会遇到 CORS 问题(考虑到这将是相同的起源)。
我创建了 proxy-backend.conf.json 文件:
{
"*": {
"target": "http://localhost:9090",
"secure": false,
"logLevel": "debug"
},
"/graphql": {
"target": "http://localhost:9090",
"secure": false,
"logLevel": "debug"
}
}
并在 package.json 中添加该脚本:
“开始测试”:“ng服务--proxy-config proxy-backend.conf.json--端口4200”
当我运行 npm run start-test 时,它实际上执行了命令,但看起来代理没有工作。让我认为它不起作用的原因有三个:
旧项目在 Angular 8 上运行,这个项目在 Angular 16 上运行,考虑到两个版本之间的差异,也许我只是做错了什么。
有什么想法吗?
单独解决。我做错的是在环境文件中有一个路径。仅当(在我的情况下)api 调用为 http://localhost:4200/graphql 时,代理才会工作,因此如果这是路径,则代理将工作并更改 http://localhost:9090 中的路径/graphql 并会改变原点。
我的错误是直接调用 http://localhost:9090/graphql ,这样代理就无法工作。