Angular 2.0 服务调用不通过 http-proxy-middleware
Angular 2.0 service call not going through http-proxy-middleware
我有一个 Angular 2.0 应用程序,最近我添加了带有以下 bs-config.js:
的 http-proxy-middleware
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
启动我的应用程序时,它启动了 bs-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 代理正在执行正确的转换,但在右下方的行中,我在来自 WorkLocationService 调用的 GET 上收到 404 错误。如果看起来配置正确,为什么我的服务不能通过代理?
我错过了什么吗?
原来我的目标是错误的。
我有:
target: 'http://localhost/Perform/Company/Worklocation
而且必须是:
target: 'http://localhost/Perform/Company'
由于工作地点已经是我传递的上下文的一部分。
这是我现在可以使用的代码:
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})
}
}
};
我有一个 Angular 2.0 应用程序,最近我添加了带有以下 bs-config.js:
的 http-proxy-middlewarevar 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
启动我的应用程序时,它启动了 bs-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 代理正在执行正确的转换,但在右下方的行中,我在来自 WorkLocationService 调用的 GET 上收到 404 错误。如果看起来配置正确,为什么我的服务不能通过代理? 我错过了什么吗?
原来我的目标是错误的。
我有:
target: 'http://localhost/Perform/Company/Worklocation
而且必须是:
target: 'http://localhost/Perform/Company'
由于工作地点已经是我传递的上下文的一部分。
这是我现在可以使用的代码:
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})
}
}
};