Как добавить параметр curl `-H` в форму? - PullRequest
0 голосов
/ 29 ноября 2018

Пример запроса HTTP для Linux:

 curl https://api.paypal.com/v1.3/transactions/qrcode \
-H "Authorization: Bearer <TOKEN>" \
-d amount=100 \
-d currency="USD" \
-d reference="jsd342113" \
-d ipn_url="http://demowebsite.com/ipn"

Теперь я хочу объединиться в форму.

Я знаю, как преобразовать параметры -d, но я не знаюНе знаете, как согласовать параметр -H.

<form method="post" action="http://demo/api/x"> 
  <input type="hidden" name="amount" value="100"/>
  <input type="hidden" name="currency" value="USD"/>
  <input type="hidden" name="reference" value="jsd342113"/>
  <input type="hidden" name="ipn_url" value="http://demowebsite.com/ipn"/>
  <input type="submit" value="Pay Now" /> 
</form>

, но как добавить параметр -H в форму?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

К сожалению, пользовательские заголовки должны быть сделаны с javascript / XMLHttpRequest, а не с <form>.что-то вроде

<div id="myform">
    <input type="hidden" name="amount" value="100" />
    <input type="hidden" name="currency" value="USD" />
    <input type="hidden" name="reference" value="jsd342113" />
    <input type="hidden" name="ipn_url" value="http://demowebsite.com/ipn" />
    <input type="submit" value="Pay Now" />
    <script>
        document.querySelector("#myform > [type=submit]").addEventListener("click", function() {
            var all = document.querySelectorAll("#myform > input");
            var inputs = new FormData();
            for (var i = 0; i < all.length; ++i) {
                inputs.append(all[i].name, all[i].value);
            }
            var xhr = new XMLHttpRequest();
            xhr.open("POST", "http://demo/api/x");
            xhr.setRequestHeader("Authorization", "Bearer <TOKEN>");
            xhr.send(inputs);
        });
    </script>
</div>

теперь, пожалуйста, отправьте жалобу в W3C об отсутствии контроля заголовка в <form> сообщениях.

0 голосов
/ 29 ноября 2018

Нет способа добавить заголовок HTTP-запроса в форму, но вы можете использовать ajax для его замены.

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