我想将当前页面的url发送到servlet而不刷新或重新加载页面。这是代码 -
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Action Onclick </title>
<!-- <script>
$('#contactForm').submit(function () {
alert('sdafjb');
return false;
});
</script>-->
</head>
<body>
<form id="contactForm" >
<fieldset>
<label for="Name">Name</label>
<input id="contactName" type="text" />
</fieldset>
<fieldset>
<label for="Email">Email</label>
<input id="contactEmail" type="text" />
</fieldset>
<fieldset class="noHeight">
<textarea id="contactMessage" cols="20"></textarea>
<a href="#" onclick="document.getElementById('contactForm').submit();"> submit </a>
</fieldset>
</form>
<small id="messageSent">Your message has been sent.</small>
</body>
我的servlet名称是scriptservlet。请帮帮我......
答案 0 :(得分:2)
AJAX用于与服务器通信而无需重新加载或更改浏览器中的当前页面。您应该能够只为服务器创建一个AJAX调用,并向服务器发送您想要的任何数据,而不会影响当前页面。
在正常情况下,AJAX调用仅限于“同源”,这意味着您只能与当前网页在同一域中的服务器进行通信,因此您还必须确保满足此安全限制。 / p>
答案 1 :(得分:1)
对servlet执行ajax调用,并通过对servlet执行(request.getRequestUri())来传递当前页面的Url。
var requestUri = '<% request.getRequestUri()%>';
var hostname = location.host;
$.ajax({
type: "POST",
url: "/scriptServlet",
data: { "host": hostname, "uri": requestUri }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
请注意,语法可能不正确但你必须制作一个ajax callt才能达到结果。
答案 2 :(得分:0)
这可以通过从服务器(servlet)将相应的响应代码(我猜是204)发送回客户端来实现。这样,即使提交了请求,页面也不会刷新/重新加载。
答案 3 :(得分:0)
您可以在表单中使用隐藏字段。
<input type="hidden" name="currentPage" value="<%=request.getRequestURL()%>">