我正在使用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”。
答案 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
对象。