确定进入java servlet的GET或POST请求是否是AJAX请求的最佳方法是什么?到目前为止,我在搜索中遇到的方法是使用
从标题中删除信息"XMLHttpRequest".equals(request.getHeader("X-Requested-With"));
还有其他方法可以解决这个问题吗?似乎依赖标题并不是一个非常强大的解决方案。
答案 0 :(得分:1)
以下HTML文档使用SELECT * FROM players WHERE userid = ?
方法向Servlet发送异步AJAX请求:
jQuery.post()
需要处理这两种请求的Controller可以使用<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>click demo</title>
<style>
body {font-family: verdana;margin:20px; font-size: 14px;}
div.container {border: 1px solid black;
background-color: #f0ffff;padding:10px;width:460px;
}
p.result {color:red;font-weight:bold;}
h3 {color:blue;}
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<script>
$(document).ready(function() {
$("#myAsyncBtn").click(function() {
$.post(
"async",
function( data ) {
$(".result").html(data);
}
);
});
});
</script>
<body>
<div class="container">
<h3>Ajax Request Detection using Java</h3>
<p>Click this button to make a Asynchronous Request
<button id="myAsyncBtn"> Click Here</button>
</p>
<p>Now click a Link to make a synchronous request
<a href="async">Sync Call</a>
</p>
<p class="result"></p>
</div>
</body>
</html>
方法来检测Request类型。开发人员可以使用request.getHeader()
标头参数来获取请求类型。如果Ajax请求x-requested-with
将返回request.getHeader('x-requested-with')
作为字符串,否则返回XMLHttpRequest
。
null
答案 1 :(得分:-1)
$.ajaxSetup({
headers: {"X-My-Header":"Bob"}
});