Java Servlet:确定请求是否为AJAX的最佳方法

时间:2014-09-19 05:39:55

标签: java ajax servlets xmlhttprequest

确定进入java servlet的GET或POST请求是否是AJAX请求的最佳方法是什么?到目前为止,我在搜索中遇到的方法是使用

从标题中删除信息
"XMLHttpRequest".equals(request.getHeader("X-Requested-With"));

还有其他方法可以解决这个问题吗?似乎依赖标题并不是一个非常强大的解决方案。

2 个答案:

答案 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"}
});