Send response from servlet to ajax call as object
本问题已经有最佳答案,请猛点这里访问。
我正在通过以下方式将servlet传递给jQuery。
jQuery的:
1 2 3 4 5 6 7 8 9 | $('.snd').click(function (){ $.ajax({ url: '/ProjectName/ServletName?action=test', data: {cl1: $('.t11').val()}, success: function (response){ $('.t12').val(response); } }); }); |
Servlet的
1 2 3 4 5 6 7 8 9 10 11 12 13 | if (action.compareTo("test") == 0) { action ="abc"; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println("text1"); } finally { out.close(); } } |
通过这样做我得到结果"text1"
现在我需要做什么,而不是发送普通文本,我想将一个对象或一个String数组作为响应发送到jQuery?
例如
在servlet中我有以下数组
1 | String[] ss= {"n1","n2"}; |
在jQuery中我想使用
1 | $('.t12').val(response[0]); |
得到结果"n1"
您不能直接在服务器和浏览器之间发送对象,但您可以做的是将它们序列化为JSON文本格式(这就是JSON的发明)。 服务器端的
如果在jQuery ajax调用中将数据类型指定为JSON,它将自动为您解析它,因此您甚至不必调用