考虑以下代码片段:
$('#myBtn').click(function(e) {
e.preventDefault();
var formElement = $(this).closest('form')[0];
var request = new XMLHttpRequest();
request.open("POST", "https://posttestserver.com/post.php");
request.send(new FormData(formElement));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="POST" action="https://posttestserver.com/post.php">
<input type="text" name="wtf" />
<button type="submit" name="lol" value="cats" id="myBtn">
Huh
</button>
</form>
(打开您的开发人员工具并观察HTTP请求。)
当您单击按钮时,文本框中输入的任何文本都包含在POST请求中。但是,来自按钮本身的lol=cats对不包括在内。
我如何使 FormData包括按钮提供的数据?