我的系统:Windows 7 上的 git bash
// The actual grunt server settings
connect: {
options: {
port: 8000,
// Change this to '0.0.0.0' to access the server from outside.
hostname: 'localhost',
livereload: 35729
},
proxies: [
{
context: '/api',
host: 'dev-maps.company.it',
port: '80',
https: false,
changeOrigin: true,
rewrite: {
'^/api': '/api'
}
}
],
...
上面的片段是我的 grunt 文件的一部分,当我使用grunt serve
. 它的作用是代理后端 api,该后端 apidev-maps.company.it
是通过我们的 DNS 解析的公司内部主机(当然还有一些公司代理)。我的问题是我收到了 404 响应。
现在,当我将 URL ( dev-maps.company.it
) 放在浏览器中时,它会正确解析。我的浏览器用户使用“proxy.pac”文件——如果我没记错的话——这个端点解析为 DIRECT(意味着没有代理)。grunt connect
但是,它似乎无法解决它,因此我怀疑 grunt 正在使用其他一些代理。
我验证了我的 git bash 没有设置任何代理环境变量(如 http_proxy 或类似的)。此外,我试图破解一个快速的 nodejs 应用程序,它使用该http
包执行 GET 到dev-maps.company.it
它并且它可以工作:
app.get('/api/v1/contexts', function(req, response){
var prot = options.port == 443 ? https : http;
var req = prot.request(options, function(res) {
var output = '';
console.log(options.host + ':' + res.statusCode);
res.setEncoding('utf8');
res.on('data', function (chunk) {
output += chunk;
});
res.on('end', function() {
var obj = JSON.parse(output);
response.send(obj);
});
});
req.on('error', function(err) {
//res.send('error: ' + err.message);
});
req.end();
});
有谁知道我还能在哪里寻找???