Получение параметров запроса из API-интерфейса FormData для сервлетов до версии 3.0, где request.part не поддерживается
В основном я пытаюсь отправить параметры формы в виде данных в другой jsp и распечатать параметры, но я сталкиваюсь с проблемами при выполнении этого. Ниже приведен HTML-код, который создает экземпляр FormData и отправляет его в виде данных публикации XMLHttpRequest на целевой jsp.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var form = new FormData();
form.append('firstname', 'peter');
form.append('lastname', 'parker');
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","sample.jsp",true);
xmlhttp.send(form);
}
</script>
</head>
<body>
<div id="myDiv"><h2>Text which will be changed on click</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
Целевой код сервлета jsp идет примерно так, где я пытаюсь получить параметры, добавленные в экземпляр FormData.
<%
out.println(request.getParameter("firstname"));
out.println(request.getParameter("lastname"));
%>
Но когда я пытаюсь запустить jsp, я получаю напечатанные параметры равными нулю. Я новичок в ajax и мире сценариев на стороне клиента. Так может кто-нибудь объяснить, как мне успешно получить параметры из экземпляра FormData?
1 ответ
$( document ).ready(function() {
$( "#button_click" ).click(function(){
var form= new FormData();
form.append('firstname', 'peter');
form.append('lastname', 'parker');
$.ajax({
url: 'sample.jsp',
data: form,
cache: false,
contentType: "application/x-www-form-urlencoded",
processData: false,
type: 'POST',
success: function(data){
alert(data);
}
});
});
});
<div id="myDiv"><h2>Text which will be changed on click</h2></div>
<button id="button_click" type="button">Change Content</button>
Также вам потребуются эти заголовки выше
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
Теперь запрос и дайте мне знать, если это работает
Обновить
попробуйте этот jsfiddle http://jsfiddle.net/Ujryx/25/
HTML
<form id="formoid" action="sample.jsp" title="" method="post">
<div><label class="title">First Name</label><input type="text" id="firstname" name="firstname" ></div>
<div><label class="title">Name</label><input type="text" id="lastname" name="lastname" ></div>
<div><input type="submit" id="submitButton" name="submitButton" value="Submit"></div>
JS
$("#formoid").submit(function(event) {
event.preventDefault();
var $form = $( this ),
url = $form.attr( 'action' );
var posting = $.post( url, { firstname: $('#firstname').val(), lastname: $('#lastname').val() } );
posting.done(function( data ) {
alert('success');
});
});