外观
有段时间,不知何故,本地的请求通过node环境中的一个叫http-proxy-middleware的包转发本地请求到别人通过花生壳映射的内网后,总是请求失败,会报错:ORAY-ERROR-3。这个显然不会是朋友那边本地服务器的问题,因为这个服务放在公网上时,里面的服务都是可以用的。 我用的是vue-cli脚手架配套的webpack模版。经过尝试,发现只要修改一下转发的请求头里的Host字段即可。具体要修改的文件为:/build/dev-server.js,需要修改的地方见下面的代码:
// proxy api requests
Object.keys(proxyTable).forEach(function (context) {
var options = proxyTable[context];
if (typeof options === "string") {
options = { target: options };
}
options.headers = {
Host: config.hostUsed,
};
app.use(proxyMiddleware(options.filter || context, options));
});代码中config.hostUsed即为花生壳内网映射时对应的外网地址,这个值不需要包含http或https这种协议字符,只需要'www.example.com'这部分就可以了。