web-dev-qa-db-fra.com

La requête Axios GET ne fonctionne pas

J'utilise: Axios: 0.17.1 Node: 8.0.0

Le nœud standard suivant get fonctionne correctement, mais pas la version Axios. Des idées pourquoi?

Node http:

    http
    .get(`${someUrl}`, response => {
        buildResponse(response).then(results => res.send(results));
    })
    .on('error', e => {
        console.error(`Got error: ${e.message}`);
    });

Axios:

axios
    .get(`${someUrl}`)
    .then(function(response) {
        buildResponse(response).then(results => res.send(results));
    })
    .catch(function(error) {
        handleError(error, res);
    });

Je viens d'avoir un 503 en attente, avec "Demande échouée avec le code d'état 503"

4
Ben Taliadoros

Il semble que vous puissiez transmettre les détails du proxy à Axios FYI.

De la docs ...

  // 'proxy' defines the hostname and port of the proxy server
  // Use `false` to disable proxies, ignoring environment variables.
  // `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and
  // supplies credentials.
  // This will set an `Proxy-Authorization` header, overwriting any existing
  // `Proxy-Authorization` custom headers you have set using `headers`.
  proxy: {
    Host: '127.0.0.1',
    port: 9000,
    auth: {
      username: 'mikeymike',
      password: 'rapunz3l'
    }
  },
3
Zinc

La seule chose qui a fonctionné pour moi a été de désactiver le proxy:

delete process.env['http_proxy'];
delete process.env['HTTP_PROXY'];
delete process.env['https_proxy'];
delete process.env['HTTPS_PROXY'];

De: Socket raccrocher lors de l’utilisation de axios.get, mais pas lors de l’utilisation de https.get

0
Ben Taliadoros

Je pense que vous pourriez avoir oublié de retourner la réponse axios.

return axios
    .get(`${someUrl}`)
    .then(function(response) {
        return buildResponse(response).then(results => res.send(results));
    })
    .catch(function(error) {
        handleError(error, res);
    });

Avis return avant axios.get et avant buildResponse

0
Amit Kumar Khare

utilisez la propriété withCredentials dans votre request config qui résoudra votre problème.

 axios
    .get(`${someUrl}`, { withCredentials: true })
    .then(function(response) {
        return buildResponse(response).then(results => res.send(results));
    })
    .catch(function(error) {
        handleError(error, res);
    });
0