Proxy.conf.json не работает должным образом для Angular CLI - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь решить проблему политики 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

1 Ответ

0 голосов
/ 27 марта 2019

он звонил

http://localhost:8080/esbapi/servicedetails/v1/proxyservice

URI в порядке.

Изменить вас proxy.conf.json как показано ниже:

{
  "/esbapi/servicedetails/v1/proxyservice" :{
     "target":"http://machinename:7171",
     "secure": false,
     "changeOrigin" : true,
     "logLevel": "debug"
    }
}
...