公司代理的grunt代理问题?

时间:2015-06-24 08:26:35

标签: windows proxy grunt-connect-proxy

我的系统: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代理到dev-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();
});

有没有人知道我还能找到什么?

0 个答案:

没有答案