Я перевожу свое приложение Angular с 8 на 9, и теперь у меня возникает проблема с CORS, которой у меня не было до миграции. Почему у меня нет этой проблемы с Angular 8?
- веб-прогоны с ng serve на localhost: 4200
- бэкэнд запускается на localhost (порт по умолчанию 80)
, поэтому я добавил файл proxy.conf.json
в свое приложение:
{
"/api/*": {
"target": "http://localhost:80",
"secure": false,
"logLevel": "debug"
}
}
и мой angular.json
выглядит так:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myapp:build",
"proxyConfig": "src/proxy.conf.json"
},
Пока я по-прежнему получить ошибку CORS при вызове бэкэнда. Что-нибудь еще, что я должен сделать?
Я также пытался запустить приложение с помощью следующей команды ng serve --proxy-config src/proxy.conf.json
, но не повезло, та же ошибка.
[EDIT]
После добавив <add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
к моей конфигурации бэкэнда, я получаю это:
Access to XMLHttpRequest at 'http://localhost/mybackend/token' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values 'http://localhost:4200, http://localhost:4200', but only one is allowed.
Но я добавил только один раз. Я не добавил ни по коду.
[EDIT 2]
моя конфигурация:
{
"/api/*": {
"target": "http://localhost:80/mybackend/",
"pathRewrite": { "^/api": "" },
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}
, и я также удалил Access-Control-Allow-Origin
из бэкэнда, как предложено @adrisons. Тем не менее я получаю эту же ошибку:
Access to XMLHttpRequest at 'http://localhost/mybackend/token' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.