【发布时间】:2022-06-10 19:24:47
【问题描述】:
我试图让我的 Angular 应用程序访问我的本地 Web Api,所以我尝试实现一个代理,因为没有它我遇到了 CORS 错误:
从源“http://localhost:4200”访问“https://localhost:4300/api/games/getAll”处的 XMLHttpRequest 已被 CORS 策略阻止:无“访问控制允许源”请求的资源上存在标头。
我想代理所有 http://localhost:4200/api/* 请求来代替 ping https://localhost:4300/api/* 来绕过 CORS,所以上面的方法可以工作
但是我的代理似乎并没有真正影响我的请求。似乎代理在那里,但由于某种原因它没有捕获我的请求
我尝试了proxy.conf.json 的多种变体
{
"/api/*": {
"target": "http://localhost:4300",
"secure": false
}
}
这也在我的angular.json
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "bcm:build",
"proxyConfig": "src/proxy.conf.json"
},
虽然我也用简单的ng s --proxy-config src/proxy.conf.json 尝试过
当我在详细模式下运行时,似乎正在设置代理:
PS D:\dev\bettercompletionsmatter\bcm> ng serve --verbose
⠋ Generating browser application bundles (phase: setup)...<i> [webpack-dev-server] [HPM] Proxy created: /api -> http://localhost:4300
⠙ Generating browser application bundles (phase: setup)...<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:4200/, http://127.0.0.1:4200/
<i> [webpack-dev-server] 404s will fallback to '/index.html'
但我仍然收到 CORS 错误,Get 请求试图从 4200 达到 4300...我错过了什么?
【问题讨论】: