Я пытаюсь решить проблему политики CORS с помощью заголовка Access-Control-Allow-Origin, используя Proxy.conf.json с моим приложением Angular.У меня нет большого опыта работы с Angular, и после стольких поисков в Google я настроил приложение ниже, и оно не работает для меня.
Кажется, что Angular не собирается на прокси, вызовы API работают так, как будто в прокси ничего не указано.
Я использую Node для размещения своего приложения, и у меня есть следующая команда для запуска приложения в package.json
"ng": "ng",
"start": "ng serve --host 0.0.0.0 -p 8080 --proxy-config proxy.conf.json",
В моем файле environment.ts есть ссылка ниже.
"proxyService":"http://machinename:7171/esbapi/servicedetails/v1/proxyservice"
Я звоню выше api используя post
return this.http.post(environment.proxyService, jsonForPost).map((res: Response) => res.json());
У меня есть следующий код в моем proxy.conf.json.Я также пытался с "/ esbapi / *, но я все еще не заставляю его работать.
{
"/esbapi/servicedetails/v1/proxyservice*" :{
"target":"http://machinename:7171/esbapi/servicedetails/v1/proxyservice",
"secure": false,
"changeOrigin" : true,
"logLevel": "debug"
}
}
У меня все еще возникает проблема с CORS, когда я использую вышеупомянутую конфигурацию. Кажется, что прокси не работает.
Я также попробовал следующие шаги.
В одном посте было упомянуто, что фиксированный путь URL может не работать с методом post, поэтому я также попытался изменить значение в моей среде
.ts
"proxyService":"/esbapi/servicedetails/v1/proxyservice"
и попытался создать прокси для того, что не сработало.
Вместо вызова
"target":"http://machinename:7171/esbapi/servicedetails/v1/proxyservice"
,
он вызывал
http://localhost:8080/esbapi/servicedetails/v1/proxyservice
Код не обнаружил цель, указанную в файле прокси-файла конфигурации.
Пожалуйста, дайте мне знать, если я что-то здесь не так делаю.
Некоторые Подробнее -------
Когда я запускаю сервер, я вижу следующую информацию в консоли.
> ng serve --host 0.0.0.0 -p 8080 --proxy-config proxy.conf.json
** NG Live Development Server is listening on 0.0.0.0:8080, open your browser on http://localhost:8080/ **
10% building modules 3/3 modules 0 active[HPM] Proxy created: /esbapi/servicedetails/v1/proxyservice* -> http://machinename:7171
[HPM] Subscribed to http-proxy events: [ 'error', 'close' ]
И когда я звонюиз интерфейса ниже строка печатается на консоли
[HPM] POST /esbapi/servicedetails/v1/proxyservice -> http://machinename:7171/esbapi/servicedetails/v1/proxyservice
Я включил консоль браузера и вижу следующее сообщение
POST http://localhost:8080/esbapi/servicedetails/v1/proxyservice net::ERR_EMPTY_RESPONSE