gpt4 book ai didi

java - HttpServletResponse 应发送数据而不将其打印到客户端屏幕

转载 作者:行者123 更新时间:2023-12-02 12:48:31 24 4
gpt4 key购买 nike

我正在构建一个网络应用程序。

此 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()”等方法。

我想发送数据而不将其打印到屏幕上。

我怎样才能做到这一点?

****************************更新************************ **********************

我尝试使用 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 页面的整个 html 代码组成!

最佳答案

没有任何内容被发送到“屏幕”,具体取决于请求的来源。
如果您单击链接,浏览器会发起请求,浏览器会收到响应并处理要显示的输出。

在这种情况下,请求将源自您的ajax调用,因此ajax调用将处理该请求,并且内容将在.requestText属性中接收的响应。

您可能需要确保将 HttpServletResponse 对象的响应内容类型设置为“text/html”,但是由于您要使用 ajax,您可能会还可以考虑使用 JSON。

关于java - HttpServletResponse 应发送数据而不将其打印到客户端屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44659762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com