我正在构建一个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来处理请求。 一旦收到客户端的数据,并且已经应用了一些业务逻辑,我想发回一个简单的字符串。
然后,数据字符串将由上面的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()”之类的方法。
我想发送数据而不将其打印到屏幕上。
我该怎么做?
******** UPDATE ********************* ***********************
我尝试使用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代码组成!
答案 0 :(得分:1)
没有任何内容被发送到"屏幕"具体而言,这完全取决于请求的来源
如果单击链接,浏览器将启动请求,浏览器将收到response
并处理输出以显示。
在这种情况下,request
将来自您的ajax调用,因此ajax调用将处理请求,并且内容将在响应的.requestText
属性中接收。
您可能希望确保HttpServletResponse
对象的响应内容类型设置为" text / html",但是因为您已经到目前为止要使用ajax,您也可以考虑使用JSON的步骤。