Curl -u Запрос в JavaScript - PullRequest
       0

Curl -u Запрос в JavaScript

0 голосов
/ 11 февраля 2019

Мне нужно выполнить запрос curl следующим образом:

curl -u "apikey:{apikey}" "{url}"

Как я могу сделать это в JavaScript?В частности, у меня возникли проблемы с обработкой поля -u curl в запросе javascript.

Ответы [ 4 ]

0 голосов
/ 11 февраля 2019

Вот решение с ванильным js.

var request = new XMLHttpRequest();
request.open("GET", yourUrl, true);
request.setRequestHeader("apikey","someapikey778229"); 
request.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        //do something here;
    }
};
request.send();
0 голосов
/ 11 февраля 2019

Вы не можете вызвать JavaScript из curl.Вы уверены, что хотите вызвать javascript, а не публиковать json?

ex

curl -i -X POST -u user:userpass -H 'Accept: application/json' -H 'Content-type: application/json' --url 'http://myserver' -d '{
  apikey:"ddasds",
  url:"http://myserver"
}'
0 голосов
/ 11 февраля 2019

Чтобы развернуть ответ @ whirlwin, вы можете сгенерировать требуемое значение заголовка с помощью следующего кода:

const apiKey = "someApiKey"
const basicAuthValue = Buffer.from(`apikey:${apikey}`).toString("base64");
const authHeaderValue = `Basic ${basicAuthValue}`

//node
let requestOpts = {/* node http options */}; 
requestOpts = { 
    ...requestOpts, 
    headers: { 
        ...requestOpts.headers, 
        "Authorization": authHeaderValue 
    } 
}

//browser
const request = new XMLHttpRequest();
request.setRequestHeader("Authorization", authHeaderValue)
0 голосов
/ 11 февраля 2019

При использовании JavaScript вам потребуется указать базовый заголовок аутентификации (Authorization: Basic <base64 of apikey:value>) с ключом API.Если вы используете XMLHttpRequest, посмотрите на это: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...