6
回答
Ajax实现图片显示,如在后台生成图片失败该如何告知前台浏览器
华为云实践训练营,热门技术免费实践!>>>   

各位好,目前我所工作的项目中有个类似验证码图片生成的功能,就是传递参数到后台,按所给的参数生成图片;

用于生成图片的就是一个servlet. 在生成图片之前,会检查参数是否为空,参数长度是否正确等,

我的想法是,如以上两个检查不通过,需要返回消息告知前台浏览器,并弹出来。

经过尝试,我没有完成此功能的开发,特来寻求帮助。

我的方法是

ServletOutputStream out = request.getOutputStream();
out.print("<script language='javascript'>parent.callback("错误信息")</script>");

前台无法接收到。callback是前台页面的一个回调函数。

另外,请教使用jquery开发此功能的例子。

举报
黄金乞丐
发帖于7年前 6回/1K+阅
共有6个答案 最后回答: 7年前

jQuery:

$.get('url', {param:value}, function(revalue){

alert(revale);

});

后台直接输出结果就可以了。例如

outprint("Hello");

如果你是前台用<img>调用后台的serlvet,那么servlet的输出格式就必须为图片格式了。又会怎么有文字了。

如果你硬要实现,产生图片失败的文字的提示的话,可以根据参数的有效性,设置值,serlvet生产图片保存在服务器,客户端连接重新刷新,请求一次就可以了。serlvet返回的文字,成功或失败,如果成功就刷新验证码、如果失败就提示客户。

不知道可不可以,反正还是有点变扭了。

4楼的哥们,目前在我们项目的报表打包下载时已经用过了,实现比较麻烦,懒得弄,呵呵,想找更好的方法。

一会试试3楼的方法。

另外,早上来公司后和同事商讨了一下,还有一个方式是,先把参数发送到后台检验,成功则再使用AJAX方式再次请求图片生成服务,检验失败则可直接弹出提示框。主要是要做到页面的无刷新。用户在前台查觉不到。

顶部