我正在构建一个Web应用程序。
此Web应用程序的一部分是从客户端到服务器的Ajax请求:
$.ajax({
url: url,
type: "get",
data: {
id: ID,
},
success: function(response) {
//parameter response contains the data sent back from the server
//some stuff is done to this data in the rest of this function
},
error: function() {
alert("An error occurred.");
}
});
在服务器端,我正在使用servlet来处理请求。
一旦接收到来自客户端的数据,并且已经应用了一些业务逻辑,我想发送回一个简单的String。
然后,上述ajax函数的以下部分将处理数据字符串:
success: function(response) {
//parameter response contains the data sent back from the server
//some stuff is done to this data in the rest of this function
},
我的问题是这样的:
我知道如何将数据发送到客户端的屏幕:
PrintWriter out = response.getWriter();
out.println(data);
但是,我不知道如何将数据(不是发送到屏幕,而是发送到)到ajax函数,以便该ajax函数可以处理从服务器接收的数据。
类“ HttpServletResponse”的java对象“ response”仅提供诸如“ sendError()”之类的方法。
我想发送数据而不将其打印到屏幕上。
我怎样才能做到这一点?
*************************更新************************ ********************
我试图使用PrintWriter将字符串发送回ajax函数:
PrintWriter out = response.getWriter();
out.println("test");
...然后,我想在警报消息中输出文本“ test”:
$.ajax({
url: url,
type: "get",
data: {
latitude: location.lat(),
longitude: location.lng(),
radius: 10
},
success: function(response) {
alert(response);
},
error: function() {
alert("Ein Fehler beim Abfragen der Daten ist aufgetreten.");
}
});
但是,除了输出内容为“ test”的警报消息外,输出还包括发送了ajax调用的JSP-Page的整个html代码!
最佳答案
没有任何内容专门发送到“屏幕”,这与请求的起源有关。
如果单击链接,浏览器将启动请求,浏览器将收到response
并处理输出以显示。
在这种情况下,request
将来自您的ajax调用,因此ajax调用将处理请求,并且内容将在响应的.requestText
属性中接收。
您可能需要确保将HttpServletResponse
对象的响应内容类型设置为“ text / html”,但是由于您打算使用ajax,因此不妨考虑使用JSON的步骤也一样