Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Axios proxy is not working. #2072

Open
pumanitro opened this issue Mar 31, 2019 · 8 comments
Labels

Comments

@pumanitro
Copy link

@pumanitro pumanitro commented Mar 31, 2019

Describe the bug
I have installed anyProxy 3rd party proxy ( http://anyproxy.io/en/#install )
When I type anyproxy in my command line then my proxy starts on http://localhost:8001
and I have also preview of proxy status on http://localhost:8002.

On the Frontend site, I'm using axios like:

axios
      .get("https://randomuser.me/api/?results=50", {
        proxy: {
          host: "http://localhost",
          port: 8001
        }
      })
      .then(response => {
        const data = response.data.results;
        this.setState({ data });
      })
      .catch(error => {
        console.log(error);
      });

Here is a simplified version of this:
https://codesandbox.io/s/j35zl05lk5

But the request is omitting proxy and is sent directly:
image

It behaves like the axios proxying functionality would not be even working.

I also tried stuff like:

let httpsProxyAgent = require("https-proxy-agent");
var agent = new httpsProxyAgent("http://localhost:8001");
...
 axios
      .get("https://randomuser.me/api/?results=50", {
        httpAgent: agent
      })
      .then(response => {
        const data = response.data.results;
        this.setState({ data });
      })
      .catch(error => {
        console.log(error);
      });

But it gives me the same result as the previous one.
Also tried npm dependency called "axios-https-proxy-fix", but with the same result.

Expected behavior
Proxying request to the proxy server.

Environment:

  • Axios Version "axios": "0.18.0",
  • OS: Win 10
  • Browser Chrime
  • Browser Version 73.0.3683.86
@pumanitro pumanitro added the type:bug label Mar 31, 2019
@SwiTool

This comment has been minimized.

Copy link

@SwiTool SwiTool commented May 7, 2019

I can confirm. Full post on https://stackoverflow.com/questions/55981040/axios-https-request-over-a-proxy

I tried the proxy param, which is apparently not supported in browser, but at least I tried :

const axios = require('axios');

var res = await axios.get('https://api.ipify.org?format=json', {
    proxy: {
        host: 'proxy-url',
        port: 80,
        auth: {username: 'my-user', password: 'my-password'}
    }
});
console.log(res.data); // gives my ip and not the proxy's one

And also with the httpsAgent param :

const axios = require('axios');
const HttpsProxyAgent = require('https-proxy-agent')

var agent = new HttpsProxyAgent('http://my-user:my-pass@proxy-url:port');
var res = await axios.get('https://api.ipify.org?format=json', {
    httpsAgent: agent,
});
console.log(res.data); // gives my ip and not the proxy's one

None of them work.

@k0t0fey

This comment has been minimized.

Copy link

@k0t0fey k0t0fey commented May 17, 2019

+1
proxy option not working with https
Any ideas how to solve this problem?

@jerrwy

This comment has been minimized.

Copy link

@jerrwy jerrwy commented May 23, 2019

+1

@Stevenje

This comment has been minimized.

Copy link

@Stevenje Stevenje commented Jun 22, 2019

+1 not working in version .19

@Stas-Buzunko

This comment has been minimized.

Copy link

@Stas-Buzunko Stas-Buzunko commented Jun 24, 2019

i did 3 things that got it working.

  1. updated node to v11+
  2. added --tls-min-v1.0 flag like this node --tls-min-v1.0 index.js
  3. updated axios to .19

first 2 didn't help without the last one.

@SwiTool

This comment has been minimized.

Copy link

@SwiTool SwiTool commented Jun 25, 2019

i did 3 things that got it working.

  1. updated node to v11+
  2. added --tls-min-v1.0 flag like this node --tls-min-v1.0 index.js
  3. updated axios to .19

first 2 didn't help without the last one.

Thank you for that ! Next time i'll work on proxies i'll take a look.

I have been struggling for an entire day trying to make this work, that was in april, but I finally switched to another library.
Proxies work very well with node-fetch combined with https-proxy-agent.

@diegolaciar

This comment has been minimized.

Copy link

@diegolaciar diegolaciar commented Sep 16, 2019

Axios default.proxy settings don't work on Chrome.
Any workaround for this?

@habmukandu

This comment has been minimized.

Copy link

@habmukandu habmukandu commented Nov 12, 2019

Axios (v.19) is not working with our corporate proxy for https requests. We use a squid proxy and it returns a protocol error in our case.

You can reproduce the error in node (with a public squid proxy) using latest Axios and an Axios version using 'https-proxy-agent':

run:
npm install axios axios-https-proxy-fix

create file 'index.js' with content:

const axiosDefaultConfig = {
    baseURL: 'https://jsonplaceholder.typicode.com/posts',
    proxy: {
        host: '142.93.165.82',
        port: 8080,
        protocol: 'http'
    }
};

const axios = require ('axios').create(axiosDefaultConfig);
axios.get('42')
    .then(function (response) {
        console.log('Response with axios was ok: ' + response.status);
    })
    .catch(function (error) {
        console.log(error);
    });

const axiosFixed = require ('axios-https-proxy-fix').create(axiosDefaultConfig);
axiosFixed.get('42')
    .then(function (response) {
        console.log('Response with axios-https-proxy-fix was ok: ' + response.status);
    })
    .catch(function (error) {
        console.log(error);
    });

run
node index.js

Then you can see in console log that Axios fails with a protocol error while the modified Axios version using https-proxy-agent succeeds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
8 participants
You can’t perform that action at this time.