自动提交表单时,如何添加标题?

时间:2015-07-29 16:51:01

标签: jquery header form-submit

我正在使用JQuery 1.9.2,尽管这个问题可能与JQuery无关。我正在使用此代码自动提交HTML表单...

<script type="text/javascript">
    $(function() {
        $('#autolaunch').submit(); 
    }); 
</script>
…
<form id="autolaunch" name="autolaunch" action="${ltiLaunchUrl}" method="post">
    <input type="hidden" name="lti_version" value="${lti_version}" />
    <input type="hidden" name="lti_message_type" value="${lti_message_type}" />
    …
    <input type="hidden" name="lis_person_name_given" value="${lis_person_name_given}" />
</form>

表单的操作与访问此页面的服务器不同。我的问题是,如何在提交此数据时添加标题?我要添加的标题看起来像name =&#34; LTI-Authorization&#34;和value =“Token consumerKey:consumerSecret”。

2 个答案:

答案 0 :(得分:0)

您无法在表单中添加标题。

而不是标题添加新的隐藏输入。

<input type="hidden" name="LTI-Authorization" value="Token consumerKey:consumerSecret" />

您可以使用ajax请求或XHR添加标头。

$.ajax({
    type: 'POST',
    url: url,
    headers: {
        "LTI-Authorization":"Token consumerKey:consumerSecret"
    },
    data: {
       "lti_version":"${lti_version}" // all other data
    }
}).done(function(data) { 
    alert(data); 
});

答案 1 :(得分:0)

您可以在执行XMLHttpRequest的同时在Jquery中添加一个需要处理javascript Jquery form submit对象的标头。我已经回答了相同的问题here。 你会做这样的事情:

xhttp.open("POST", "/v1/target-endpoint.do", true);
xhttp.setRequestHeader("custom_header", "test value of custom header");
xhttp.send($("#custom_form").serialize());

其中xhttp是您的XMLHttpRequest对象。