Angular-CLI proxy para back-end no funciona

https://github.com/angular/angular-cli#proxy-to-backend aquí hay una instrucción sobre cómo hacer proxys para back-end. Hice todo paso a paso y las solicitudes inmóviles no están representadas.

8080 – my Express backend 4200 – mi interfaz Angular2

En el proyecto Angular2 tengo el archivo proxy.cons.json con contenido como este:

 { "/api": { "target": "http://localhost:8080", "secure": false } } 

En Angular2 package.json cambié el procedimiento de start para "start": "ng serve --proxy-config proxy.conf.json"

Cuando npm start dentro de commander npm start , al comienzo puedo ver Proxy created: /api -> http://localhost:8080 . Bueno, hasta ahora es bueno, supongo.

Estoy tratando de enviar una solicitud (Angular2)

  constructor(private http: Http) { this.getAnswer(); } getAnswer(): any { return this.http.get("/api/hello") .subscribe(response => { console.log(response); }) } 

Me aparece un error que http://localhost:4200/api/hello 404 (Not Found) . Como podemos ver, nada ha sido representado. ¿Por qué? ¿Hice algo mal?

Para ser claro. Cuando voy manualmente a http://localhost:8080/hello , todo funciona bien. No hay nada que buscar en el lado de back-end.

Podrías probar con este:

 { "/api": { "target": "http://url.com", "secure": false, "pathRewrite": {"^/api" : ""} } } 

Esto funciona para mi,

 ** NG Live Development Server is running on http://localhost:4200. ** 10% building modules 3/3 modules 0 active[HPM] Proxy created: /api -> http://ec2-xx-xx-xx-xx.ap-south-1.compute.amazonaws.com [HPM] Proxy rewrite rule created: "^/api" ~> "" 

Esto estuvo cerca de funcionar para mí. También tuve que agregar

 "changeOrigin": true, 

full proxy.conf.json se muestra a continuación:

 { "/proxy/*": { "target": "https://url.com", "secure": false, "changeOrigin": true, "logLevel": "debug", "pathRewrite": {"^/proxy" : ""} } } 

Tuve que hacer un pequeño ajuste basado en las respuestas anteriores, aunque ahora parece un poco extraño mirar la configuración.

Este es mi proxy.conf.json que se muestra a continuación:

 { "/api/*": { "target": "https://url.com", "secure": false, "changeOrigin": true, "logLevel": "debug", "pathRewrite": {"^/api" : "http://url.com/api"} } } 

Básicamente, reescribí el camino por completo. Y funciona ahora.

En MAC esto funciona para mí

Angular 4 ejecutando localhost: http: // localhost: 4200 /

En package.json

 "start": "ng serve --proxy-config proxy.config.json", 

En proxy.config.json

Donde nuestro-compañía-servidor sería reemplazado por URL fuera del sitio

 { "/v1": { "target": "https://our-company-server.com:7002", "secure": false, "logLevel": "debug" } } 

Donde una solicitud GET angular sería …

 this.http.get('/v1/dashboard/client', options).map... // options are headers, params, etc... // then .map the observable in this case.