如何在表单中添加curl -H参数?

时间:2018-11-29 09:17:10

标签: forms http curl

有一个HTTP请求的Linux curl示例:

 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 :(得分:0)

无法在表单中添加HTTP请求标头,但是您可以使用ajax替换它。

答案 1 :(得分:0)

不幸的是,自定义标头必须使用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>帖子中缺少标题控制。