Да, я нашел тонну подобных вещей, но все еще не решен для моего экземпляра. Я бы хотел не убивать безопасность на стороне браузера и позволить прокси-серверу выполнять свою работу, но я боюсь, что мне не хватает некоторых бессмысленных деталей в настройке, и я ни в коем случае не эксперт CORS.
Итак, что я получаю ... 403;
Failed to load http://localhost:10000/some/rest/endpoint: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
Где localhost:10000
- это мой api url, а :4200
- это экземпляр Angular CLI по умолчанию.
Итак, я настраиваю прокси, как и ожидалось, в angular.json;
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "angular-proj:build",
"proxyConfig": "./proxy.conf.json"
},
и добавьте proxy.conf.json;
{
"/some/rest/*": {
"target": "http://localhost:10000",
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}
Я подаю его и даже отмечаю proxy.conf, который подтверждает CLI;
[HPM] Proxy created: /some/rest -> http://localhost:10000
и т. Д. *
.... за исключением того, что я все еще получаю 403, и все еще вижу в заголовках запроса *; 1021 *
Host: localhost:10000
Origin: http://localhost:4200
Итак, мой вопрос, что за пустяки я здесь упускаю? Я не хочу помечать звездочками запросы на все источники и не хочу отключать проверки браузера, я бы предпочел, чтобы это было красиво упаковано в конфигурации сервера, как будто я делаю другую пару глаза более чем приветствуются. Приветствия
ADDENDUM : Мой GET, кажется, проходит нормально, но что-то вроде Access-Control-Request-Method: POST
показывается как Request Method: OPTIONS
, и вот где я получаю свои 403 ... почему POST станет ОПЦИОНАМИ ??
ADDENDUM # 2 : Стоит упомянуть, я получаю эту проблему в Chrome / Firefox, но в Edge все кошерно ???
ADDENDUM # 3 : Это работает как --aot=true
с прокси.