【发布时间】:2016-12-16 16:25:59
【问题描述】:
我想问是否可以在调用$(myForm).submit();之前指定标题我知道你可以在AJAX post请求中指定但是在这个简单的表单提交之前可以吗?
【问题讨论】:
-
不,不可能使用 javascript 向常规表单提交添加标题。
我想问是否可以在调用$(myForm).submit();之前指定标题我知道你可以在AJAX post请求中指定但是在这个简单的表单提交之前可以吗?
【问题讨论】:
是的,你可以。需要一些原生 JavaScript 苦差事,我就是这样做的:
<!DOCTYPE html>
<html>
<body>
<h1>Custom Header Injection 1</h1>
<div id="header_demo">
<form id="custom_form">
<input type="hidden" name="name_1" value="${form.name_1}" />
<button type="button" onclick="submitFormAndHeader()">Submit Form</button>
</form>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script>
function submitFormAndHeader() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
xhttp.open("POST", "/v1/target-endpoint.do", true);
xhttp.setRequestHeader("custom_header", "test value of custom header");
xhttp.send($("#custom_form").serialize());
}
</script>
</body>
</html>
添加了一个函数submitFormAndHeader,它创建了一个XMLHttpRequest 对象,该对象添加了所需的标头并通过HTTP POST 提交HTML DOM 表单。
或者,您可以使用Jquery submit handler 并调用上面创建的submitFormAndHeader() 函数:
$( "#custom_form" ).on( "submit", function( event ) {
event.preventDefault();
submitFormAndHeader();
});
【讨论】:
is it possible to specify headers before calling $(myForm).submit(); 在这里,我们在表单提交事件期间添加一个标题并覆盖它的默认行为。
$(myForm).submit(); 时添加标题 .. 即通过传递覆盖 $( "myForm" ).on( "submit", function( event ) {... .. 不使用 @Donatas 所要求的 jquery 的 ajax 函数:@987654334 @