在我的网站中,我使用ajax将信息发布到java servlet并使用以下javascript代码读取响应:
$.ajax({
url : 'myfirstservlet',
async: false,
data : {
//send info..
},
success : function(responseText) {
//receive response..
}
});
在我的servlet中,我将返回多个响应。例如:
String response1 = "response1";
int response2 = "5";
out.println(response1);
out.println(response2);
那么如何获取这两个不同响应的值并将它们放在单独的javascript变量中?
e.g。
$var response1 = ['response1'];
$var response2 = ['response2'];
谢谢:)
答案 0 :(得分:2)
如果out
是响应者,那么您的输出将是
response1
5
一种更好的方法是创建一个JSON对象而不是纯文本。
{
"res1":"response1",
"res2":"5"
}
答案 1 :(得分:0)
您想要的是在单个响应中使用两个不同的数据进行响应。根据HTTP,您不能有两个响应。
您可以使用Json或正确删除数据来执行此操作。
答案 2 :(得分:0)
我认为我们过于复杂了。
HTTP中没有对请求的多个响应。客户端发出请求,服务器发回响应。您显示的代码不会发送多个响应。它发送一个响应,其中只包含2个有趣的数据。
由于您使用的是println
,因此您的输出按行定义是按行分隔的。因此,在客户端代码中,将响应拆分为CRLF。
var parts = response.split(/\r?\n/);
var part1 = parts[0];
var part2 = parts[1];
如果您要传输的数据非常简单且不太可能增长,那么这很好。如果您想要一个更具伸缩性的解决方案,我推荐使用JSON。