HTML दस्तावेज़ के बाद
jQuery.post()
विधि का उपयोग करता सर्वलेट को एक अतुल्यकालिक AJAX अनुरोध भेजने के लिए:
<!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.getHeader()
विधि का उपयोग कर सकते हैं की जरूरत है। अनुरोध प्रकार प्राप्त करने के लिए डेवलपर x-requested-with
हेडर पैरामीटर का उपयोग कर सकता है। अजाक्स अनुरोध request.getHeader('x-requested-with')
के मामले में XMLHttpRequest
वापस स्ट्रिंग के रूप में वापस आ जाएगा null
।
package org.techzoo.async;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/async")
public class AsyncServlet extends HttpServlet {
public AsyncServlet() {
super();
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String headerName = request.getHeader("x-requested-with");
if(null == headerName){
PrintWriter out = response.getWriter();
String html = "<h3>Clinet send a Synchronous request</h3>" +
"<p><a href=\"index.jsp\">Go Back</a> to main page</p>";
out.write(html);
}
else {
ServletOutputStream out = response.getOutputStream();
out.print("Ajax Request Detected");
out.flush();
}
}
}
स्रोत
2015-06-02 06:00:45
के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2419223/how-to-detect-if-a-request-is [कैसे करता है, तो एक अनुरोध ajax या सामान्य सर्वर साइड पर है पता लगाने के लिए] -जैक्स-या-सामान्य-ऑन-सर्वर-साइड) – Ilya
[जेएसपी/सर्वलेट का संभावित डुप्लिकेट कैसे पहचानें कि HTTP अनुरोध AJAX अनुरोध से आया है] (http://stackoverflow.com/questions/14004877/jsp-servlet -how-to-पहचान-if-the-http-request-came-a-ajax-request) – icza
कोई अन्य विश्वसनीय तरीका afaik नहीं है। लेकिन आपके द्वारा पोस्ट की गई विधि में क्या गलत है? – icza