Clique em "Visualizar" para uma versão mais legível
Estou tendo um problema com a propriedade defaults. Quando uma instância é criada estou configurando o baseUrl, verificando o valor defaults posso ver que o baseUrl foi configurado mas uma vez que tento enviar um único pedido axios não está usando o baseUrl configurado anteriormente.
const config = {
timeout: 1500,
baseUrl: 'https://reqres.in/api',
...defaults,
};
const instance = axios.create(config);
try {
const response = await instance.get('/users?page=2');
console.log(response);
} catch (e) {
console.error(e);
}
Observe no final da resposta: _currentUrl: 'http:/users?page=2'
Se eu alterar o método get para ter a URL completa a requisição funciona.
{
Error: connect ECONNREFUSED 127.0 .0 .1: 80
at TCPConnectWrap.afterConnect[as oncomplete](net.js: 1173: 14)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80,
config: {
adapter: [Function: httpAdapter],
transformRequest: {
'0': [Function: transformRequest]
},
transformResponse: {
'0': [Function: transformResponse]
},
timeout: 1500,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers: {
Accept: 'application/json, text/plain, */*',
'User-Agent': 'axios/0.18.0'
},
method: 'get',
baseUrl: 'https://reqres.in/api',
url: '/users?page=2',
data: undefined
},
request: Writable {
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
bufferedRequestCount: 0,
corkedRequestsFree: [Object]
},
writable: true,
_events: {
response: [Function: handleResponse],
error: [Function: handleRequestError]
},
_eventsCount: 2,
_maxListeners: undefined,
_options: {
protocol: 'http:',
maxRedirects: 21,
maxBodyLength: 10485760,
path: '/users?page=2',
method: 'get',
headers: [Object],
agent: undefined,
auth: undefined,
hostname: null,
port: null,
nativeProtocols: [Object],
pathname: '/users',
search: '?page=2'
},
_redirectCount: 0,
_requestBodyLength: 0,
_requestBodyBuffers: [],
_onNativeResponse: [Function],
_currentRequest: ClientRequest {
_events: [Object],
_eventsCount: 6,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
upgrading: false,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: 0,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
socket: [Socket],
connection: [Socket],
_header: 'GET /users?page=2 HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nUser-Agent: axios/0.18.0\r\nHost: localhost\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
timeout: undefined,
method: 'GET',
path: '/users?page=2',
_ended: false,
res: null,
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectable: [Circular],
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]: [Object]
},
_currentUrl: 'http:/users?page=2'
},
response: undefined
}
Por favor, IGNOREM ESSA QUESTÃO. Encontrou o problema:
Eu estava configurando baseUrl
mas deveria ser baseURL
.
Engraçado, esse era o meu problema também. Só percebi o erro depois do seu comentário, obrigado senhor @tiarebalbi , você foi muito útil ahahahahahaha
Tenho certeza de que isso foi alterado, apenas copiei um código antigo com baseUrl que estava funcionando bem e agora não funciona em um projeto mais recente... Ah bem.
Salva-vidas, obrigado!
Muito obrigado! Este foi exatamente o mesmo problema para mim também. A pesquisa no Google "axios baseurl não está funcionando" valeu a pena :D
Mesmo problema aqui... obrigado!
querido Deus, mesmo problema aqui hahahaha, camelCase é uma merda
Como tantas pessoas podem cometer o mesmo erro? Estou procurando há mais de uma hora ^^
Havia um motivo para escrever o URL em letras maiúsculas?
Usar baseURL
não está funcionando. Ele continua enviando solicitações para a porta 80
Quando eu logo a instância estou recebendo:
defaults: {
headers: {
common: [Object],
delete: {},
get: {},
head: {},
post: [Object],
put: [Object],
patch: [Object],
'Content-Type': 'application/json; charset=utf-8'
},
baseURL: 'http://localhost:3000',
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 1000,
adapter: [Function: xhrAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus]
}
Para a configuração.
bem, provavelmente poderia haver um alias de baseUrl
para baseURL
@kemicofa Você também pode postar um exemplo da solicitação ou melhor ainda criar um pequeno codepen?
Teve o mesmo problema. :P
Comentários muito úteis
Por favor, IGNOREM ESSA QUESTÃO. Encontrou o problema:
Eu estava configurando
baseUrl
mas deveria serbaseURL
.