#javascript #node.js #axios #qstring
#javascript #node.js #axios #qstring
Вопрос:
У меня проблема с Axios. Axios добавляет путь к локальному хосту перед URL-адресом в node.js .
Вот мой код:
import VerifyCodes from '../../../model/DatabaseModel/VerifyCodes';
import axios from 'axios';
import qs from 'qs';
const apiUrl = 'https://api.ghasedak.io/v2/verification/send/simple';
let axiosConfig = {
method: 'post',
url: apiUrl,
headers: {
apikey: 'someNumbers',
'Content-Type': 'application/x-www-form-urlencoded',
},
data: null,
};
let additionalBodyData = {
template: 'test',
type: '1',
};
export const generateAuthenticationCode = (receptor) =>
new Promise(async (resolve, reject) => {
let code =
Math.floor(Math.random() * (9999 - 1111 1)) 1111;
axiosConfig.data = qs.stringify({
...additionalBodyData,
param1: String(code),
receptor,
});
await VerifyCodes.insertOrUpdateNewCode(receptor, code);
// @ts-ignore
axios(axiosConfig)
.catch(reject)
.then(() => resolve(code));
});
И вот моя ошибка:
{ Error: connect ECONNREFUSED 127.0.0.1:34773
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 34773,
config:
{ url: 'https://api.ghasedak.io/v2/verification/send/simple',
method: 'post',
data: 'template=testamp;type=1amp;param1=2549amp;receptor=0856',
headers:
{ Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/x-www-form-urlencoded',
apikey: 'apiKey',
'User-Agent': 'axios/0.21.0',
'Content-Length': 53,
host: 'api.ghasedak.io' },
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: [Function: validateStatus] },
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,
emitClose: true,
autoDestroy: false,
bufferedRequestCount: 0,
corkedRequestsFree: [Object] },
writable: true,
_events:
[Object: null prototype] {
response: [Function: handleResponse],
error: [Function: handleRequestError] },
_eventsCount: 2,
_maxListeners: undefined,
_options:
{ maxRedirects: 21,
maxBodyLength: 10485760,
protocol: 'http:',
path: 'https://api.ghasedak.io/v2/verification/send/simple',
method: 'POST',
headers: [Object],
agent: undefined,
agents: [Object],
auth: undefined,
hostname: '127.0.0.1',
port: '34773',
nativeProtocols: [Object],
pathname: 'https://api.ghasedak.io/v2/verification/send/simple' },
_ended: false,
_ending: true,
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 53,
_requestBodyBuffers: [ [Object] ],
_onNativeResponse: [Function],
_currentRequest:
ClientRequest {
_events: [Object],
_eventsCount: 7,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: false,
_headerSent: true,
socket: [Socket],
connection: [Socket],
_header:
'POST https://api.ghasedak.io/v2/verification/send/simple HTTP/1.1rnAccept: application/json, text/plain, */*rnContent-Type: application/x-www-form-urlencodedrnapikey: 3dac6bca51eed0a5f60d0fb3e5f9a230daf62e81aae3e018016f9bc37e4bf8c9rnUser-Agent: axios/0.21.0rnContent-Length: 53rnhost: api.ghasedak.iornConnection: closernrn',
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
timeout: undefined,
method: 'POST',
insecureHTTPParser: undefined,
path: 'https://api.ghasedak.io/v2/verification/send/simple',
_ended: false,
res: null,
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectable: [Circular],
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]: [Object] },
_currentUrl:
'http://127.0.0.1:34773/https://api.ghasedak.io/v2/verification/send/simple' },
response: undefined,
isAxiosError: true,
toJSON: [Function: toJSON] }
Как вы можете видеть, добавлен Axios http://127.0.0.1:34773 / на URL-адрес, и я уверен, что я не установил базовый файл Axios по умолчанию в своем проекте.
Я понятия не имею, почему это происходит, и не знаю, что делать!
Кто-нибудь может мне помочь, пожалуйста?
Комментарии:
1. Может быть, это baseUrl вместо простого URL в строке «url: apiUrl», я имею в виду «baseUrl: apiUrl»,
2. У меня та же проблема. Использование axios.defaults.baseUrl и AXIOS добавляет лишний LOCALHOST перед конечным URL-адресом запроса. Застрял с этой проблемой…
Ответ №1:
Я попробовал ту же конфигурацию, что и вы, она работает хорошо. похоже, вы хотите скрыть какую-то важную информацию, например, apikey. Они подробно показаны в сообщении об ошибке.