2017-02-10 2 views
0

У меня есть Угловое приложение 2.0 и недавно я добавил HTTP-прокси-промежуточный программное обеспечение со следующим BS-config.js:Угловая вызов 2,0 сервиса не проходит через HTTP-прокси-промежуточный

var proxyMiddleware = require('http-proxy-middleware'); 

module.exports = { 
    server: { 
     port: 3000, 
     middleware: { 
      1: proxyMiddleware('/WorkLocation', { 
       target: 'http://localhost/Perform/Company/WorkLocation', 
       changeOrigin: false, 
       logLevel: 'debug' 
      }), 
      2: require('connect-history-api-fallback')({index: '/index.html', verbose: true}) 
     } 
    } 
}; 

Тогда у меня есть службы, как это:

export class WorkLocationsService extends BaseRestfulService<WorkLocationItemModel[]> {  

    private workLocationsServiceUrl: string = '/WorkLocation/EditList/111014/73442'; 

    constructor(protected _http: Http) { super(_http) } 

    public getWorkLocations(): Observable<WorkLocationItemModel[]> {   
     return this.callApiEndPoint(null, this.workLocationsServiceUrl, HttpVerb.Get); 
    }; 

Когда я начинаю мое приложение через npm start он прокалывает до БС-config.js настройки прокси-сервера, и я вижу следующий вывод:

[1] [HPM] GET /WorkLocation/EditList/111014/73442 -> http://localhost/Perform/Company/WorkLocation 
[1] 17.02.09 20:44:09 404 GET /WorkLocation/EditList/111014/73442 

Так выглядит, как прокси HPM делает правильный перевод, но в строке справа внизу я получаю ошибку 404 в GET, исходящую от моего вызова WorkLocationService. Почему мой сервис не будет проходить через прокси-сервер, если он будет настроен правильно? Я что-то упустил?

ответ

0

Оказывается, моя цель была неправильной.

Я имел:

target: 'http://localhost/Perform/Company/Worklocation 

и это должно было быть:

target: 'http://localhost/Perform/Company' 

С Worklocation уже был частью контекста я проходил.

Это код, который работает для меня сейчас:

var proxyMiddleware = require('http-proxy-middleware'); 

module.exports = { 
    server: { 
     port: 3000, 
     middleware: { 
      1: proxyMiddleware('/WorkLocation', { 
       target: 'http://localhost/Perform/Company', 
       changeOrigin: true, 
       logLevel: 'debug' 
      }), 
      2: require('connect-history-api-fallback')({index: '/index.html', verbose: true}) 
     } 
    } 
}; 
Смежные вопросы